0
点赞
收藏
分享

微信扫一扫

c++虚函数与多态性知识总结

                               虚函数与多态性

1.虚函数:

         在类中被声明为virtual的成员函数,是重载的另一种形式。

2.

(1声明为指向基类对象的指针可以指向公有派生类的对象,不允许指向它的私有派生类的对象,也不允许指向保护派生类对象。                      

    (2 不允许将一个声明为指向派生类对象的指针指向基类的对象

    (3 声明为指向基类对象的指针,指向公有派生类的对象,只能访问派生类从基类继承下来的成员,不能直接访问公有派生类中定义的成员。

3. 虚函数的定义在基类中进行。                         

   可以在派生类中重新被定义,要求函数原型(返回类型,函数名,参数个数,类型,顺序)要一致。

  

4. 虚函数与重载函数的区别:                               

           函数重载要求函数的参数或类型必须有不同,函数返回类型可以不同,可以相同。

           虚函数要求函数原型(返回类型,函数名,参数个数,类型,顺序)要一致。

5.虚函数的限制:

    (1 虚函数的声明只能出现在类声明的函数原型的声明中,不能出现函数体实现中,基类中只有保护成员或公有成员才能被声明为虚函数。

    (2 动态联编只能通过成员函数来调用或通过指针引用访问虚函数,如果用对象名来访问虚函数,采用静态联编。

    (3 虚函数不能是友元函数或静态成员函数,但可以在另一个类中被声明为友元函数。

    (4 构造函数不能被声明为虚函数,析构函数可以

    (5 内联函数不能被声明为虚函数。

6.纯虚函数:

           在一个基类中说明的虚函数,在该基类中没有具体的操作内容,要求各派生类在重新定义时根据自己的需要定义实际的操作内容。

    

7.当类声明中包含纯虚函数时,不能创建该类的对象。纯虚函数的类只作为基类。

  基类中纯虚函数只有函数名不具备函数的功能,不能被调用

8.抽象类就是带有纯虚函数的类。抽象类的作用就是作为一个类族的共同基类,或者为一个类族提供一个公共接口。

9.

  (1 抽象类不能作为参数类型,函数返回型,显示转换类型

  (2 可以声明抽象类的指针,引用,通过它们,可以指向,访问派生类对象,从而访问派生类的成员。

举报

相关推荐

0 条评论