Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Parent
  5. {
  6. int i;
  7.  
  8. public:
  9. Parent(int ii) : i(ii) { cout << "Parent(int ii)n"; }
  10. Parent(const Parent& b) : i(b.i) { cout << "Parent(const Parent&)n"; }
  11. Parent() : i(0) { cout << "Parent()n"; }
  12. friend ostream& operator<<(ostream& os, const Parent& b)
  13. { return os << "Parent: " << b.i << endl; }
  14. };
  15.  
  16. class Member
  17. {
  18. int i;
  19.  
  20. public:
  21. Member(int ii) : i(ii) { cout << "Member(int ii)n"; }
  22. Member(const Member& m) : i(m.i) { cout << "Member(const Member&)n"; }
  23. friend ostream& operator<<(ostream& os, const Member& m)
  24. { return os << "Member: " << m.i << endl; }
  25. };
  26.  
  27. class Child : public Parent
  28. {
  29. int i;
  30. Member m;
  31.  
  32. public:
  33. Child(int ii) : Parent(ii), i(ii), m(ii) { cout << "Child(int ii)n"; }
  34. friend ostream& operator<<(ostream& os, const Child& c)
  35. { return os << (Parent&)c << c.m << "Child: " << c.i << endl; }
  36. };
  37.  
  38. int main() {
  39. Child c(2);
  40. cout << "calling copy-constructor: " << endl;
  41. Child c2 = c;
  42. cout << "values in c2:n" << c2;
  43. }
  44.  
  45. return os << (Parent&)c << c.m << "Child: " << c.i << endl;
  46.  
  47. return os << (Parent)c << c.m << "Child: " << c.i << endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement