
私有继承
CRTP能实现静态多态,因其基类为模板且参数为派生类自身,使基类可通过static_cast(this)在编译期安全调用派生类接口,无虚函数开销。
适配器模式通过封装+委托将不兼容接口转为期望接口,含类适配器(继承实现,零开销)和对象适配器(组合复用,更灵活),STL中stack/queue等即典型应用,适用于重构中安全过渡。
C++中struct与class本质区别仅两点:默认成员访问权限(struct为public,class为private)和默认继承方式(struct为public继承,class为private继承...
std::is_same和std::is_base_of是用于编译期类型判断的类型特征。1.std::is_same判断两个类型是否完全相同,对const、引用等敏感;2.std::is_base_o...
公有继承保持基类成员访问权限,表达“is-a”关系,派生类对象可访问基类public成员;保护继承将基类public和protected成员变为protected,限制外部访问;私有继承将其变为pri...
答案是:在C++中,using比typedef更推荐。using语法更清晰,支持模板别名,可读性更高,且具备引入基类成员的功能,而typedef不支持模板别名,语法晦涩,尤其在复杂类型和模板场景下不如...
空基类优化(EBO)通过压缩空基类的存储空间,使派生类不因继承空类而增加内存开销。1.空类无成员变量、虚函数,大小为1字节;2.EBO允许空基类与派生类共享地址,减少冗余空间;3.应用于私有继承空的策...