c++ 父类指针指向子类对象 子类指针指向父类对象
参考
#include <iostream>
using namespace std;
class A
{
public:
virtual void foo()
{
cout << "A's foo()" << endl;
bar();
}
virtual void bar()
{
cout << "A's bar()" << endl;
}
};
class B: public A
{
public:
void foo()
{
cout << "B's foo()" << endl;
A::foo();
}
void bar()
{
cout << "B's bar()" << endl;
}
};
int main()
{
B bobj;
A *aptr = &bobj;
aptr->foo();
cout<<"------"<<endl;
A aobj = *aptr;
aobj.foo();
cout<<"------"<<endl;
B *bptr =(B*)new A;
bptr->foo();
}
B's foo()
A's foo()
B's bar()
------
A's foo()
A's bar()
------
A's foo()
A's bar()