fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. class ints
  5. {
  6. public:
  7. //vetor de ponteiros para int
  8. std::vector<int*> inteiros;
  9. //função que imprime valor de todos inteiros apontados
  10. void escreve()
  11. {
  12. for(auto i:inteiros)
  13. std::cout << *i << ", ";
  14. std::cout << std::endl;
  15. }
  16. };
  17.  
  18. int main()
  19. {
  20. //declara 3 ints
  21. int x = 1;
  22. int y = 2;
  23. int z = 3;
  24. //cria objeto A da classe ints
  25. ints A;
  26. //salva ponteiros em A
  27. A.inteiros.push_back(&x);
  28. A.inteiros.push_back(&y);
  29. A.inteiros.push_back(&z);
  30. //cria objeto B através de cópia
  31. ints B(A);
  32. //cria objeto C e usa operador atribuição
  33. ints C;
  34. C = A;
  35. //verifica conteúdo
  36. A.escreve();
  37. B.escreve();
  38. C.escreve();
  39.  
  40. //A, B e C apontam para os mesmos inteiros, incluindo y
  41. y = 666;
  42. //verifica-se que a mudança é visível através de todos objetos:
  43. A.escreve();
  44. B.escreve();
  45. C.escreve();
  46. }
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
1, 2, 3, 
1, 2, 3, 
1, 2, 3, 
1, 666, 3, 
1, 666, 3, 
1, 666, 3,