一、定义 左值(Lvalue):有名字、可被取地址、生命周期稳定的值 右值(Rvalue):没有名字、临时产生、用完即销毁的值 所有C++表达式结果,只有两种身份:左值 或 右值。 二、左值 & 右值 详细区分 1. 左值 Lvalu
一、虚继承的诞生原因 普通多重菱形继承存在两个严重问题: 公共基类会被拷贝多份存放在最终子类对象中,造成数据冗余。 访问公共基类成员时存在二义性,编译器不知道使用哪一份父类副本。 虚继承的唯一作用: 让多个父类,共享同一份公共基类子对象,保证最终子类中公共基类唯一。
默认 public 构造 / 析构是常规用法,本文不记录。 只记录工程特殊用法 + 精准限制 + 真实作用。 基础核心规则(5 条) 构造权限:控制能不能 new / 栈实例化 析构权限:控制能不能 delete / 栈自动析构 protected:子类可见,外部不可见 构造、析构 和拷贝无关,禁止