15.2

来源:互联网 发布:深圳淘宝协会 编辑:程序博客网 时间:2024/05/18 03:54
本节大意
介绍了一些基类,派生类之间的关系机制。

细节摘录
1. 除了构造函数,所有函数都可以声明为虚。
2. virtual关键字只能在内部声明中出现。外部定义时就不要出现了。
3. protected能让子类访问基类,反过来不成立。
4 派生类的虚函数声明必须和基类一致。只有一种情况例外,见P477.
5. 一旦函数被声明为虚函数,它就永远都是。
6. 用作基类的类必须是已经定义了的
7. 可以使用基类指针指向类
8. 静态类型和动态类型的不同,是支持C++多态性的基石。
9. 为了调用基类的虚函数,需要显式声明所属类。
10. 虚函数可以使用默认参数,但请确保基类子类的默认参数一样。
11. 去除个别成员的限制(由于继承时的标号机制),可以使用using关键字。
12. 默认继承级别struct和class也是不同的
13. 友元机制仅针对单类,它的子类什么的都不能继承过来。不管哪种继承。
14. 基类定义了一个静态成员,则整个继承机制中只有这样的一个成员。访问方式也很自由,用基类子类都可以,本质上访问的对象内存地址都是一样的。

课后习题
1. 虚成员是指基类希望子类重定义的成员函数
2. 它可以被子类访问
3. 略
4. 我是觉得都有可能的,而且都可能是公共的。
5. a应该是错的,不能以自身为基类,无意义。
6. 略
7. 定义一个子类,用虚函数动态绑定机制可以很容易实现。
8. 见P487上,三种方法都可以访问。不过我推荐第一种。
8. 有问题。想要调用基类的虚函数,必须显式声明其所属类,否则无穷递归了。
9. 一般来所,非共性但公有的操作需要设定为虚函数。