// example that uses virtual functions.
#include
class Base {
public:
virtual void who() { // specify a virtual
cout << "Base\n";
}
};
class first_d : public Base {
public:
void who() { // define who() relative to first_d
cout << "First derivation\n";
}
};
class second_d : public Base {
public:
void who() { // define who() relative to second_d
cout << "Second derivation\n";
}
};
int main(void)
{
Base base_obj;
Base *p;
first_d first_obj;
second_d second_obj;
p = &base_obj;
p->who(); // access Base's who
p = &first_obj;
p->who(); // access first d's who
p = &second_obj;
p->who(); // access second d's who
return 0;
}