class Base {
public:
void func1() {
this->func2();
}
virtual void func2() {
cout << "Base::func2()" << endl;
}
};
class Derived : public Base {
public:
virtual void func2() {
cout << "derived:func2" << endl;
}
};
int main()
{
Derived d;
Base *pBase = &d;
pBase->func1();
return 0;
public:
void func1() {
this->func2();
}
virtual void func2() {
cout << "Base::func2()" << endl;
}
};
class Derived : public Base {
public:
virtual void func2() {
cout << "derived:func2" << endl;
}
};
int main()
{
Derived d;
Base *pBase = &d;
pBase->func1();
return 0;
}