#include <iostream>
using std::cout;
using std::endl;
class base {
public:
virtual void virtual_function() { cout << "class base" << endl; }
};
class derived1 : public base {
public:
void virtual_function() { cout << "class derived1" << endl; }
};
class derived2 : public derived1 {
public:
};
int main()
{
base *p, b;
derived1 d1;
derived2 d2;
p = &b;
p->virtual_function();
p = &d1;
p->virtual_function();
p = &d2;
p->virtual_function();
return 0;
}
/*
run:
class base
class derived1
class derived1
*/