fork download
  1. #include<iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6. int a;
  7. A(int a)
  8. {
  9. this->a=a;
  10. }
  11.  
  12. virtual void add(int val)
  13. {
  14. a += val;
  15. cout << "Added value of a: " << a << endl;
  16. }
  17. };
  18. class B : public A
  19. {
  20. public:
  21. int b;
  22. B(int a, int b): A(a)
  23. {
  24. this->b=b;
  25. }
  26. void add(int val) override
  27. {
  28. b += val;
  29. cout << "Added value of b: " << b << endl;
  30. }
  31. };
  32. class C : public B
  33. {
  34. public:
  35. int c;
  36. C(int a, int b, int c): B(a, b)
  37. {
  38. this->c=c;
  39. }
  40. };
  41. void addAVal(A *obj)
  42. {
  43. int val;
  44. cin >> val;
  45. obj->add(val);
  46. }
  47. int main()
  48. {
  49. A obj(5);
  50. addAVal(&obj);
  51. B objb(15, 10);
  52. addAVal(&objb);
  53. C objc(1, 20, 25);
  54. addAVal(&objc);
  55. return 0;
  56. }
Success #stdin #stdout 0s 5316KB
stdin
3
4
5
stdout
Added value of a: 8
Added value of b: 14
Added value of b: 25