复合

和“public继承”带有is-a的意义类似,复合意味着has-a或is-implemented-in-term-of。

has-a属于应用域部分:程序中的对象其实相当于你所塑造的世界中的某些事物,例如人、汽车、一张张视频画面等等。

is-implemented-in-term-of属于实现域:是实现细节上的人工制品,像是缓冲区、互斥器、查找树等。

 

区分“public继承”和复合

1.has-a和is-a的区别很好辨别:

is-a:学生是一个人;

has-a:人有一个名称;不能说人是一个名称。

2.is-implemented-in-term-of和is-a的区别:

好吧,其实我也只是隐约知道这两个并不一样,具体怎么区别也没什么头绪,详情见《Effective C++》item38.掰掰

 

posted @ 2016-07-28 13:35  秋水小战士  阅读(122)  评论(0编辑  收藏  举报