#include<iostream>
using namespace std;
class Base {
public:
Base()
{
cout << "Base constructor\n";
}
void f() {
cout << "Base\n";
}
};
class Derived :public Base {
public:
Derived()
{
cout << "Derived constructor\n";
}
void f() {
cout << "Derived\n";
};
};
void main() {
Derived *der;
Base *base;
der = (Derived*)new Base();
der->f();
der = new Derived();
der->f();
}
The output of above program is
Base constructor
Derived
Base constructor
Derived constructor
Derived
I m not sure how did derived class' function gets called when the derived class's object itself is not created. Could someone explain? Thanks!