1.基类含有虚函数;
2.使用new创建基类对象和子类对象,结果均保留在基类指针变量中;
3.通过基类指针变量调用函数即可事实多态了。
如下列示例代码:
#include <iostream>
using namespace std;
class BaseTest
{
public:
BaseTest(){}
BaseTest(const BaseTest&){}
BaseTest operator= (const BaseTest&){}
virtual ~BaseTest(){}
virtual void show(){//虚函数
cout << "this is BaseTest's show function. " << endl;
}
};
class DrivedTest: public BaseTest
{
public:
DrivedTest(){}
DrivedTest(const DrivedTest&){}
DrivedTest operator= (const DrivedTest&){}
~DrivedTest(){}
void show(){
cout << "this is DrivedTest's show function." << endl;
}
};
void main()
{
BaseTest *bptr = new BaseTest;//基类指针bptr
bptr->show();//调用基类的show函数
delete bptr;
bptr = new DrivedTest;//bptr指向子类
bptr->show();//调用子类的show函数
}