zoukankan      html  css  js  c++  java
  • C++多态等知识点

    分清虚函数和纯虚函数的区别:
    (1).虚函数是函数前加关键字virtual,一般定义格式为:
    virtual 类型 函数名 (参数表)

    函数体

    (2).纯虚函数的生命格式为:
    virtual 类型 函数名 (参数表)=0;
    即没有函数体。

    (3).带有纯虚函数的类为抽象类:
    例:
    class 类名

    virtual 类型 函数名(参数表)=0;
    } 为抽象类。

    关于抽象类:
    (1).抽象类不能定义对象。
    (2).抽象类只能作为基类来使用。
    (3).构造函数不能是纯虚函数,析构函数可以是纯虚函数。

    关于虚函数:
    (1).只有类的成员函数才能说明为虚函数,因为虚函数仅适用于
    继承关系的类对象,所以普通不能说明为虚函数。
    (2).内联函数不能是虚函数,因为内联函数是在编译时决定其位置。
    (3).构造函数不能是虚函数,因为构造时对象还是一片未定型的空间。
    (4).析构函数可以是虚函数,而且通常声明为虚函 数。

    总结:
    (1).当在基类中把成员函数定义为虚函数后,在其派生类中定义的虚函数
    必须与基类中的虚函数同名,参数的类型、顺序、个数必须一一对应。
    (2).实现这种动态的多态性,必须使用基类类型的指针变量或引用,使该
    指针指向不同的派生类的对象,并通过调用指针所指的虚函数才能实现动态的多态性。


    实现多态的基本步骤:
    (1).在基类中,定义成员函数为虚函数(virtual);
    (2).定义基类的公有(public)派生类。
    (3).在基类的公有派生中“重载”该虚函数。
    (4).定义指向基类的指针变量,它指向基类的公有派生类的对象。

    注意:重载虚函数不是一般的重载函数,它要求函数名、返回类型、参数个数
    参数类型和顺序完全相同。

  • 相关阅读:
    2019-1-17 水晶报表自动补空行及格线(无分组版)
    通过ssh证书远程登录
    kali linux下不能以root权限运行vlc的解决办法
    SSH服务:packet_write_wait: Connection to 67.218.143.160 port 22: Broken pipe错误处理
    python系列--函数--递归函数
    python虚拟环境安装pyqt5
    docker API接口service update错误记录 error while removing network:…
    docker service create api参数
    docker api参数文档
    docker 集群
  • 原文地址:https://www.cnblogs.com/XiDaPuBen/p/8678287.html
Copyright © 2011-2022 走看看