非虚函数:
#include
class A
{
private:
int a;
public:
A(){a=0;}
void disp(){cout<<"A:"<<a<<endl;}
};
class B:public A
{
private:
int b;
public:
B(){b=20;}
void disp(){cout<<"B:"<<b<<endl;}
};
int main()
{
A a,*p;
B b;
p=&b;
a.disp();
p->disp();
return 0;
}
#include
class A
{
private:
int a;
public:
A(){a=0;}
virtual void disp(){cout<<"A:"<<a<<endl;}//虚函数是非静态成员函数
};
class B:public A
{
private:
int b;
public:
B(){b=20;}
void disp(){cout<<"B:"<<b<<endl;}
};
int main()
{
A a,*p;
B b;
p=&b;
a.disp();
p->disp();//由于disp()是虚函数,运行时动态绑定(根据指针所指的实际类型进行相应的绑定)
return 0;
}