一、类型兼容原则
类型兼容原则又称赋值兼容原则,是 C++ 继承机制的基础特性,核心思想是:在公有继承前提下,派生类对象可以替代基类对象使用。简单说,只要需要基类对象的地方,都能用其公有派生类对象'无缝衔接'。
类型兼容原则仅适用于公有继承(private/protected 继承会限制基类成员访问,无法满足'完整替代'要求),具体有以下 5 种典型用法:
#include <iostream>
using namespace std;
// 基类:Person
class Person {
public:
Person(string name) : m_name(name) {}
void showInfo() { cout << "姓名:" << m_name << endl; }
private:
string m_name;
};
// 公有派生类:Student
class Student : public Person {
public:
Student(string name, int id) : Person(name), m_stuId(id) {}
// 子类特有方法
void showStuInfo() { cout << "学号:" << m_stuId << endl; }
private:
int m_stuId;
};
int main() {
Student stu("张三", 2024001);
Person per("李四");
// 场景 1:子类对象直接赋值给基类对象(切片操作)
per = stu;
per.();
Person* pPer = &stu;
pPer->();
Person& refPer = stu;
refPer.();
{ p.(); }
(stu);
Person personArr[] = {per, stu};
personArr[].();
;
}

