摘要:
new和malloc以及delete和free的区别 new和delete是C++的关键字,malloc和free是库函数 new和delete会先调用构造函数和析构函数,然后释放内存,malloc和free直接就是释放内存 构造函数和析构函数能不能是虚函数 构造函数不能是虚函数:因为构造函数执行完 阅读全文
摘要:
工程中不建议使用多继承,因为多继承带来的问题比带来的便利多,已被放弃 问题一:多重继承的对象,向上获取指针时,有不同的地址 无法解决 问题二:菱形继承问题,导致成员冗余 虚继承(各种编译器的实现方式不一致,不具备抑制性) 多重继承产生多个虚函数表,建议使用dynmaic_cast进行类型转换 工程中 阅读全文
摘要:
C++中没有抽象类的概念 含有纯虚函数的类就是抽象类,抽象类的特点: 不能产生实例对象 只能被继承 接口是抽象类的一种特殊情况,具备以下条件的抽象类就是接口: 类中没有成员变量 所有的成员函数都是纯虚函数 所有的函数都是public权限 抽象类是对类的进一步抽象,接口只是对行为的抽象 C++中没有抽 阅读全文
摘要:
子类中的同名成员会覆盖父类中的同名成员,但是在内存中仍然存在,只是无法直接访问,需要加上域名才能访问 子类中的同名函数会覆盖父类中的函数,复写是同名覆盖的一种特殊情况,只要不是多态场景,复写也遵守同名覆盖原状 实现多态的条件: 继承 虚函数复写 基类的指针或引用指向子类对象 子类中的同名成员会覆盖父 阅读全文