西,感觉每一个字都不应该放过,全是重点。经过反复阅读,雷神好象有些开
窍,继续努力呀,我和大家都是。
多态是一种威力强大的设计机制,允许你继承一个抽象的 public 接口之后,封装
相关的类型,需要付出的代价就是额外的间接性--不论是在内存的获得,或是在类
的决断上,C++通过 class 的 pointer 和 references 来支持多态,这种程序风
格就称为"面向对象".
正文
深度探索 C++对象模型(3)
这篇笔记主要解决了几个常常被人问到的问题。
1、C++支持多重继承吗?
2、结构和类的区别是什么?
3、如何设计一个面向对象的模型?
C++支持多重继承(JAVA 和 C#不支持多重继承),虽然我想我可能一辈子
用不到它这一特性(C++是雷神的业余爱好),但至少我要知道它可以。典型的
多重继承是下面这个:
//iostream 从 istream 和 ostream 两个类继承。
class iostream:public istream,public ostream
{......};
结构 struct 和类 class 到底有没有区别?VCHELP 上前几天还看到一个帖子在
讨论这个问题。其实结构和类真的没什么区别,不过我们需要掌握的是什么时
候用结构好,什么时候用类好,当然这没有严格的规定。通常我们混合使用它
们,从书上的例子,我们可以看出为什么还需要保留结构,并且书上给出了一
个方法:
struct C_point{.......}; //这是一个结构
class Point
{
public:
operator C_point(){return _c_point;}
//....
private:
C_point _c_point;
//....
}
这种方法被成为组合(composition).它将一个对象模型的全部或部分用结构
封装起来,这样做的好处是你既可以在 C++中应用这个对象模型,也可以在 C
中应用它。因为 struct 封装了 class 的数据,使 C++和 C 都能有合适的空间
布局。
面向对象模型是有一些彼此相关的类型,通过一个抽象的 base class(用来提