class A
{
public:
virtual void foo()
{
cout<<"a foo "<<endl;
}
void pp()
{
cout<<" a pp "<<endl;
}
};
class B: public A
{
public:
void foo()
{
cout<<"b foo "<<endl;
}
void pp()
{
cout<<" b pp "<<endl;
}
void funb()
{
cout<<"b exe"<<endl;
}
};
void test1()
{
//A a;
//A *pa = &a;
B b;
A *pa = &b;
pa->foo();
pa->pp();
(dynamic_cast<B*>(pa))->funb();
(dynamic_cast<B*>(pa))->foo();
(dynamic_cast<B*>(pa))->pp();
(*pa).foo();
}
返回结果
b foo
a pp
b exe
b foo
b pp
b foo