// virt.cpp
#include <iostream.h)
// Base class
class B
{
public:
virtual void f()
{
cout << "B::f" << endl;
}
};
// Derived class
class D : public B
{
public:
virtual void f()
{
cout << "D::f" << endl;
}
};
main()
{
B *bp[2]; // Heterogeneous array
B b;
D d;
bp[0] = &b;
bp[1] = &d;
for (int i = 0; i < 2; ++i)
bp[i]->f();
return 0;
}
/* Output:
B::f
D::f
*/
// End of File