C++:虚函数和多态

C++中虚函数的唯一用处就是构成多态。

C++提供多态的目的是:可以通过基类指针对所有派生类(包括直接派生和间接派生)的成员变量和成员函数进行“全方位”的访问,尤其是成员函数。如果没有多态,我们只能访问成员变量。

只有派生类的虚函数遮蔽基类的虚函数(函数原型相同)才能构成多态。

构造函数不能是虚函数。析构函数可以声明为虚函数,而且有时候必须要声明为虚函数。派生类析构函数始终会调用基类的析构函数

下面是构成多态的条件:

    • 必须存在继承关系;
    • 继承关系中必须有同名的虚函数,并且它们是遮蔽(覆盖)关系。
    • 存在基类的指针,通过该指针调用虚函数。

猜你喜欢

转载自www.cnblogs.com/tomatokely/p/8963409.html