• C++虚函数


    1、在基类中将派生类会重新定义的方法声明为虚方法,基类用virtual声明成员函数为虚函数,=0表示该函数为纯虚函数

    2、纯虚函数的类不能创建对象,这种类称为抽象类。

    3、在编译过程中进行联编称为静态联编,在运行时编译的方法称为动态联编。C++中虚函数就是动态联编。静态联编的效率更高,但虚函数在运行之前不知道类型是什么,不知道哪个虚函数,所以为动态联编,如下b->View()调用的是BrassPlus中的方法。

    class Brass {
    public:
    virtual void View() const;
    }
    
    class BrassPlus:public Brass{
    public:
    virtual void View() const;
    }
    
    BrassPlus a;
    Brass *b;
    b=&a;
    b->View();

    3 、b是一个基类指针,但是可以调用同一类族中不同类的虚函数,这就是虚函数多态性

    4,虚函数的存储方式:每个类编译器都创建一个虚函数地址标,函数调用时埋在这个表中找到函数地址

    5、一般将基类的析构函数定义为虚函数,析构时先析构派生类,在析构基类。

    6、override可以避免派生类中忘记重写虚函数的错误,在派生类申明中加上override,如果没有被重写,编译器会报错。

    class BrassPlus:public Brass{
    public:
    virtual void View() const override;
    }
  • 相关阅读:
    查找表类算法//同构字符串
    网页下载器urllib2实例
    网页下载器urllib2实例
    BeautifulSoup实例
    BeautifulSoup实例
    查找表类算法//有效的字母异位词
    查找表类算法//有效的字母异位词
    C++_函数3-引用变量与函数的默认参数
    C++_函数2-内联函数
    C++_函数1-编程的基本模块函数
  • 原文地址:https://www.cnblogs.com/xiating/p/10625600.html
Copyright © 2020-2023  润新知