#include using namespace std; class Parent { public: int num = 10; Parent(int num) { this->num = num; } void print() { cout << "Num: " << num << endl; } void add(Parent* pa) // Base function { this->num += pa->num; cout << "Base func\n"; } }; class Child : public Parent { public: Child(int num) : Parent(num) {} void add(Parent* pa) // How to delete this { // Parent::add(pa); // cout << "Parent added\n"; // } // void add(Child* pa) // .. and keep this { Parent::add(pa); cout << "Child added\n"; } }; int main() { Child* ch1 = new Child(20); Child* ch2 = new Child(5); Parent* pa2 = new Parent(4); ch1->add(ch2); // Function 1 ch1->print(); cout << "\n"; ch1->add(pa2); // Function 2 ch1->print(); }