正文

《多态性》学习笔记2006-10-19 20:56:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/colormoon/19489.html

分享到:

1.可以从多个基类中派生出一个新类。这就叫做多重继承。如:

class newClass:public class1,public class2

{};

2.在内存中创建newClass的对象时,两个基类形成newClass对象的组成部分。

3.多重继承对象中的构造函数。若每个基类都有带参数的构造函数,那么newClass将依次初始化这些构造函数。

4.虚继承。如:

class newClass:virtual public baseClass

通常一个类的构造函数只初始化自己的成员变量和基类。而虚继承的基类则是一个例外,它由派生性最强的类初始化。

为了确保派生类只有一个公共基类的一个实例,把中间类声明为从基类的虚基类。因此虚继承适用于新类的多个基类的基类是同一个类的情况。

5.当一个新类需要从多个基类中继承函数和特征时必须用多重继承。

当派生性最强的类必须只有共享基类的一个实例时必须用虚继承。

6.一个抽象数据类型是一个概念,而不是一个对象。在C++中一个ADT总是其他类的基类,生成ADT的实例是非法的。

C++支持用纯虚函数来创建抽象数据类型。一个虚函数通过初始化为0就变成了纯虚函数。如:

virtual void Draw()=0;

任何带有一个或多个纯虚函数的类就叫做ADT。对于带有纯虚函数的类,其派生类必须覆盖纯虚函数。否则,它的派生类也是ADT,也不能实例化。

然而也可以给纯虚函数提供实现代码,然后这个函数可以被由ADT派生的对象所调用,这样做可能是为了给所覆盖的函数提供公共功能。

阅读(2694) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册