简介:代码重用机制:组合(composition)与继承(inheritance)
14.1 组合语法
访问嵌入对象(子对象)的成员函数只需要再一次的成员选择。
14.2 继承语法
在类的左括号前,加一个冒号和基类的名字,对于多个基类,用逗号分开。
14.3 构造函数的初始化表达式表
如果没有显示的进行伪构造函数的调用,初始化是不会执行的。
14.4 组合和继承的联合
只有通过继承才能重现定义它的函数。而对于成员对象,只能操作这个对象的公共接口,而不能重新定义它。
构造是从类层次的最根处开始,而在每一层,首先会调用基类构造函数,然后调用成员对象构造函数。调用析构函数则严格按照构造函数相反的次序。
14.5 名字隐藏
14.6 非自动继承的函数
构造函数和析构函数不能被继承,必须为每一个特定的派生类分别创建。
operator= 也不能被继承。
继承和静态成员函数(静态成员函数与非静态成员函数的共同点):
1. 它们均可以被继承到派生类中
2. 如果我们重新定义了一个 静态成员,所有在基类中的其他重载函数会被隐藏
3. 如果我们改变了基类中一个函数的特征,所有使用该函数名字的基类版本都将会被隐藏
14.7 组合与继承的选择
组合通常是希望新类内部具有已存在类的功能时使用,而不是希望已存在了类作为它的接口。
14.8 protected
protected:就这个类的用户而言,它是private的,但它可以被从这个类继承来的任何类使用。
14.9 运算符的重载和继承
14.10 多重继承
14.11 渐曾式开发
14.12 向上类型转换