pbase 都已经指向继承对象了,为什么不能执行继承对象的方法?#include iostreamusingnamespacestdclassA
pbase 都已经指向继承对象了,为什么不能执行继承对象的方法?
#include <iostream>
using namespace std;
class AA
{
//public:
//void show()
//{
//cout < < "AA " < <endl;
//}
};
class BB : public AA
{
public:
void show()
{
cout < < "BB " < <endl;
}
};
class CC :public AA
{
public:
void show()
{
cout < < "CC " < <endl;
}
};
int main()
{
AA *pbase;
BB bb;
CC cc;
pbase=&bb;
pbase-> show ();
pbase=&cc;
pbase-> show();
}
[解决办法]
class AA
{
public:
virtual void show() = 0;
};
[解决办法]
AA类型并没有show()方法,这不是公牛挤奶吗。
通过基类去调用派生类的方法是可以的,但是,基类要提供一个界面,你可以提供一个空的虚函数。
