#include <iostream.h>
class B
{
private:
virtual void foo() { cout << "B::foo" << endl;}
friend struct A;
};
class D : public B
{
private:
virtual void foo() { cout << "D::foo" << endl;}
};
struct A
{
static void test()
{
D d;
B* pb = &d;
pb->foo();
}
};
void main()
{
struct A m;
m.test();
}