通过把数据成员放到公共Query 基类中我们可以把对它的初始化和访问支持限制在局部区域中即基类中这是我们的选择。
派生类对象由其基类子对象以及由派生类的非静态数据成员构成的派生部分组成
基类指针只能访问在该类中被声明或继承的数据成员和成员函数包括虚拟成员函数而与它可能指向的实际对象无关把一个成员函数声明为虚拟的只推延了在程序执行期间根据pq 指向的实际类类型对于要调用的实例的解析过程
所有派生类对象都引用这个相同的单一的共享的静态成员不论从基类 派生了多少类_text_file 只存在一个实例如果愿意的话我们可以通过派生类对象用成员访问语法来访问它(基类的静态成员)
最后如果一个派生类希望直接访问其基类的私有成员则该基类必须显式地把派生类声明为一个友元friend
1.为了把一个或多个实参传递给成员类对象的构造函数我们通过成员初始化表来实现我们也可以用成员初始化表来初始化非类的数据成员
2.
为了向基类构造函数传递一个或多个参数我们也使用成员初始化表
构造函数的调用顺序总是如下:
1. 基类构造函数如果有多个基类则构造函数的调用顺序是某类在类派生表中出现的顺序而不是它们在成员初始化表中的顺序我们将在第18 章讨论多继承
2. 成员类对象构造函数如果有多个成员类对象则构造函数的调用顺序是对象在类中被声明的顺序而不是它们出现在成员初始化表中的顺序
3. 派生类构造函数