定义一个虚函数 不是说函数没有被实现
而是为了允许用基类的指针来调用派生类中的这个函数
定义一个纯虚函数 才是真正地没有实现
纯虚函数是一个接口,为了让程序猿在派生类中实现这个函数
将基类的成员函数设置成virtual,则相应地继承的派生类也是虚函数,可写可不写
简单来说
当基类指针指向一个子类对象时,通过这个指针调用子类和基类同名成员函数时
当基类声明成虚函数时,会调用派生的这个同名函数
否则 会调用基类的函数
当是对象作用时,还是调用派生类的
#include <iostream>
using namespace std;
class A
{
public:
A(){};
~A(){};
void print()
{
cout<<"class A"<<endl;
}
};
class B:public A
{
public:
B(){};
~B(){};
void print()
{
cout<<"class B"<<endl;
}
};
int main()
{
//A*p=new B;
//p->print();
B b;
b.print();
return 0;
}