#include<iostream>
#include<typeinfo>
using namespace std;
class base
{
public:
virtual void virtual_fun()
{cout<<"base"<<endl;}
void normal_fun()
{cout<<"base"<<endl;}
};
class derived
{
public:
virtual void virtual_fun()
{cout<<"derived"<<endl;}
void normal_fun()
{cout<<"derived"<<endl;}
};
int main()
{
base *cp=(base *)new derived;
cp->virtual_fun();
cp->normal_fun();
derived *dp=(derived *)new base;
dp->virtual_fun();
dp->normal_fun();
}
程序运行结果:
derived
base
base
derived
由此可得:
(1) 基类指针=(基类指针类型)new 派生类;