fork download
  1. #include <iostream>
  2.  
  3. class Child {
  4. private:
  5. std::string name;
  6. public:
  7. void setName(std::string name) { this->name = name; }
  8. std::string getName() { return this->name; }
  9. };
  10.  
  11. class Parent {
  12. private:
  13. Child child;
  14. public:
  15. Child getChild1() { return this->child; }
  16. Child *getChild2() { return &(this->child); }
  17. Child &getChild3() { return this->child; }
  18. };
  19.  
  20. int main() {
  21. Parent parent1;
  22. parent1.getChild1().setName("ko");
  23. std::cout << "1: " << parent1.getChild1().getName()<< std::endl;
  24.  
  25. Parent parent2;
  26. (parent2.getChild2())->setName("ko");
  27. std::cout << "2: " << (parent2.getChild2())->getName()<< std::endl;
  28.  
  29. Parent parent3;
  30. parent3.getChild3().setName("ko");
  31. std::cout << "3: " << parent3.getChild3().getName()<< std::endl;
  32. }
  33. /* end */
  34.  
Success #stdin #stdout 0s 3028KB
stdin
Standard input is empty
stdout
1: 
2: ko
3: ko