/*
派生类与基类
1 派生类的数据大小
(1) 基类 - 结构体
(2) 派生类 - 结构体套结构体
2 顺序问题:
(1) 构造与析构: 基类先构造,后析构。派生类,先析构,后构造。
(2) 原因: 依赖关系, 派生类使用基类的数据,所以基类先构造。
3 三种权限: 访问限制
三种地方访问: 本类、派生类、类外
(1) private 本类可以访问
(2) protected: 基类和派生类可以访问
(3) public: 任意地方都可以访问
4 调用
(1) 基类的成员函数无法使用派生类的成员变量和成员函数
(2) 在继承允许的情况下, 派生类可以调用基类的成员变量和成员函数
(a) 允许派生类对基类同名的成员变量和成员函数进行重写
(b) 允许派生类成员函数通过基类名::成员函数/成员变量方式,使用基类的成员变量和成员函数。
(c) 允许派生类对象通过对象名.基类名::成员函数/成员变量方式,使用基类的成员变量和成员函数。
5 赋值
(1) 派生类对象(结构体)可以直接赋值给基类对象(结构体), 反之则不行。
(2) 原因: 派生类对象的数据(成员变量)>=基类对象的数据(成员变量), 反之则是<=。
(1) 派生类对象(指针)可以直接赋值给基类对象(指针), 反之则不行。
(2) 原因: 派生类的数据(成员变量)可以调用基类的成员函数,反之则无法实现。
*/