class C {
private:
int j;
};
class B {
private:
C c;
};
class A {
private:
B b;
};
A a;
我想知道C ++中组合层次结构的正确术语是什么:
b
到c
,反之亦然?a
到c
,反之亦然?我很想使用诸如child,parent,root,base,sub-object等术语,但这些似乎通常是指继承关系或含糊不清。 “包含对象”似乎没问题(尽管有点笨拙),但在另一个方向我不能说“容器”(已经指向矢量,地图等)。是否有任何简洁和传统的方式来描述这种关系?
答案 0 :(得分:2)
这取自:https://en.wikipedia.org/wiki/Has-a
的简要概要b
到c
的内容是什么? c
是一个" meronym"或"成分" b
。这是"的一部分"关系。
c
到b
的内容是什么? b
是"会员" c
或b
是"撰写" c
。这是一个" has-a"关系。
a
到c
,反之亦然?关于跳跃两级层次结构的面向对象的术语是不一致的,尽管"孙子","祖父母"或"中级"可能会被扔掉。
在这种特殊情况下,可以公平地说,c
是a
成员的首字母""或" a
'成员"的成员。那个" a
的成员由c
"组成。
但在任何一种情况下,你都只是想描述这种等级。