基类通常应该定义一个虚析构函数;
基类用virtual关键字声明的虚函数可以在派生类中重新定义,在派生类中重新定义时最好也加上virtual关键字
通过指针或引用调用的虚函数在运行时才会被解析,其他函数在编译时就会被解析。
动态绑定(多态):
用一个基类的引用(或指针)调用一个虚函数时,传入不同的派生类或者基类将调用不同的函数实现。
基类引用可以指向派生类是因为派生类含有基类的部分,编译器 会隐式转换。
class A
{
protected:
int a, b;
};
class AA: public A
{
protected:
int c;
}