成员函数与继承
在C++语言中,基类必须将它的两种成员函数区分开来:一种是基类希望派生类进行覆盖的函数;另一类是基类希望派生类直接继承而不要改变的函数。对于前者,基类通常将其定义成虚函数(virtual)。当我们使用指针或引用调用虚函数时,该调用将被动态绑定。根据引用或指针所绑定的对象类型不同,该调用可能执行基类版本,也可能执行某个派生类版本。
基类通过在其成员函数的声明语句之前加上关键字virtual使得该函数执行动态绑定。任何构造函数之外的非静态函数都可以是虚函数。关键字virtual只能出现在类内部的声明语句而不能用于类外部的函数定义。如果基类把一个函数声明成虚函数,则该函数在派生类中隐式也是虚函数。
成员函数如果没有被声明为虚函数,则其解析过程发生在编译时而非运行时。
访问控制与继承