fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Base
  5. {
  6. private:
  7. int m_a;
  8. public:
  9. Base(int a): m_a(a) { }
  10. Base operator+(const Base& rhs) { return Base(m_a + rhs.m_a); }
  11. void print() { cout << m_a; }
  12. };
  13. class A: public Base
  14. {
  15. private:
  16. int m_b;
  17. A(Base base, int b): Base(base), m_b(b) { }
  18. public:
  19. A(int a, int b): Base(a), m_b(b) { }
  20. A operator+(const A& rhs) { return A(Base::operator+(rhs), m_b + rhs.m_b); }
  21. void print() { Base::print(); cout << " " << m_b; }
  22. };
  23.  
  24.  
  25. int main()
  26. {
  27. A a1(1, 2), a2(3, 4);
  28. A sum = a1 + a2;
  29. sum.print();
  30. return 0;
  31. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
4 6