zoukankan      html  css  js  c++  java
  • 虚析构函数-纯虚函数-抽象类-多继承

    虚析构函数

    • 如果存在父类指针指向子类的情况,应该将析构函数声明为虚函数
    • delete父类指针时,才会调用子类的析构函数,保证析构的完整性

    纯虚函数:没有函数体且初始化为0的虚函数,用来定义接口规范

    • Java:抽象类、接口
    • OC:协议
    struct Animal {    //定义接口
        virtual void speak() = 0;
        virtual void run() = 0;
    };
    
    struct Dog : Animal {    //子类来写具体干嘛
        void speak() { ...}
        void run() { ...}
    };
    
    

    抽象类(Abstract Class)

    • 含有纯虚函数的类,不可以实例化(不可以创建对象)
    • 如果父类是抽象类,子类没有完全重写纯虚函数,那这个子类依然是抽象类

    多继承

    • C++允许一个类可以有多个父类(不建议用,会增加程序设计复杂度)
    struct Undergraduate : Student, Worker {...}
    struct Undergraduate : public Student,public Worker {...}    //默认都是公有继承,不需要写
    

    多类里面有同名函数

    Undergraduate ug;
    ug.eat();
    ug.Student::eat();
    ug.Worker::eat();
    

    多类里面有同名成员变量

    Undergraduate ug;
    ug.m_age = 10;
    ug.Student::m_age = 11();
    ug.Worker::m_age = 12;
    
    • 日本 任天堂创始人在他那个年代只有汇编可以用来写游戏。没有类,对象这些现成的可以用的结构
    • 间接的使用寄存器,内存地址来表示数据结构的各种逻辑关系
    • 用汇编的角度看各种语言,是作为一名安全人员学编程速成的一个支撑点,撬动上百门编程语言
  • 相关阅读:
    P2764 最小路径覆盖问题
    P1402 酒店之王 网络流
    P2597 [ZJOI2012]灾难 拓扑排序
    FJOI2017 矩阵填数
    2019.2.27模拟
    2019.2.26模拟
    SDOI2013 方程
    [AH2017/HNOI2017]抛硬币
    Lucas定理和扩展Lucas定理
    LuoguP4861 按钮
  • 原文地址:https://www.cnblogs.com/sec875/p/12313393.html
Copyright © 2011-2022 走看看