Guest User

Untitled

a guest
Nov 24th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class A { // Contained class.
  4. public:
  5. A(int i) : a_number_(i) {}
  6. void print() const { std::cout << a_number_ << "n"; }
  7. private:
  8. int a_number_;
  9. };
  10.  
  11. class A_Container { // Container class.
  12. public:
  13. ~A_Container() { delete a_; }
  14. A_Container(const A& a) : a_(new A(a)) { std::cout << "I was called!n"; }
  15. const A& getA() const { return *a_; }
  16. private:
  17. A* a_;
  18. };
  19.  
  20. void foo(const A_Container& container) { // This func takes a container...
  21. container.getA().print();
  22. }
  23.  
  24. int main() {
  25. A a(147);
  26. foo(a); // ...but I'm passing it the contained class.
  27. return 0;
  28. }
  29.  
  30. I was called!
  31. 147
Add Comment
Please, Sign In to add comment