与组合相关的类对象的术语

时间:2015-12-01 14:22:48

标签: c++ terminology composition

class C {
private:
    int j;
};

class B {
private:
    C c;
};

class A {
private:
    B b;
};

A a;

我想知道C ++中组合层次结构的正确术语是什么:

  • 什么是bc,反之亦然?
  • 什么是ac,反之亦然?

我很想使用诸如child,parent,root,base,sub-object等术语,但这些似乎通常是指继承关系或含糊不清。 “包含对象”似乎没问题(尽管有点笨拙),但在另一个方向我不能说“容器”(已经指向矢量,地图等)。是否有任何简洁和传统的方式来描述这种关系?

1 个答案:

答案 0 :(得分:2)

这取自:https://en.wikipedia.org/wiki/Has-a

的简要概要

bc的内容是什么?

c是一个" meronym"或"成分" b。这是"的一部分"关系。

cb的内容是什么?

b是"会员" cb是"撰写" c。这是一个" has-a"关系。

什么是ac,反之亦然?

关于跳跃两级层次结构的面向对象的术语是不一致的,尽管"孙子","祖父母"或"中级"可能会被扔掉。

在这种特殊情况下,可以公平地说,ca成员的首字母""或" a'成员"的成员。那个" a的成员由c"组成。

但在任何一种情况下,你都只是想描述这种等级。