
公有继承
C++中继承用:语法实现,多态依赖virtual函数和基类指针/引用调用;公有继承保持访问级别,派生类不继承构造函数、析构函数、赋值运算符和友元函数。
协变返回类型允许派生类虚函数返回基类返回类型的派生类指针或引用,需满足:同名、同参数、同cv限定、同指针/引用类别、公有继承;不支持值类型和智能指针。
virtual继承使派生类共享同一基类子对象,解决菱形继承中因B、C各自继承A导致D含两份A而引发的二义性、内存浪费等问题;需由最派生类D显式构造虚基类A,带来间接访问开销与复杂初始化顺序。
std::shared_from_this的作用是让已由std::shared_ptr管理的对象安全生成指向自身的另一个std::shared_ptr;必须公有继承std::enable_shared...
CRTP是编译期静态多态技术,通过模板参数传递派生类类型实现零开销调用;传统继承是面向对象机制,可支持动态多态(需虚函数)或纯代码复用,二者本质不同。
C++异常处理依靠try、catch、throw实现,需成对使用,支持类型匹配与RAII资源管理,适用于意外可恢复错误,不推荐替代常规控制流。
对象表示是对象在内存中由有效成员字节与对齐用padding字节构成的可复制字节序列,不含paddingbits、vptr等实现细节,决定memcpy、ABI及序列化行为。
封装将数据和操作打包在类中,通过访问控制保护内部细节;2.继承支持派生类复用基类成员,建立类层次结构;3.多态允许同一接口调用不同实现,提升代码灵活性。
std::shared_from_this用于已由shared_ptr管理的对象安全获取共享引用计数的shared_ptr;直接newshared_ptr(this)会创建独立控制块导致双重析构;必须...
C++面向对象的三大特性是封装、继承和多态。封装通过信息隐藏与访问控制(private/public/protected)解决数据可见性与修改权限问题;继承以公有方式表达“is-a”关系,确立类型层级...