OOP中的组成

时间:2014-04-28 03:52:02

标签: c++ oop

我在面向对象设计的上下文中有一个关于组合的简单问题。 在C ++中,如果我要实现某个类由其他类组成,我会执行以下操作:

class foo {

private : bar b; // composition (foo is composed of bar)
};

但如果我这样做:

class foo {
public:
      virtual ~foo()  {
          delete b;
          b = NULL;
   }
private : 
     bar *b = new bar();
}

这是否意味着foo由bar组成?我想认为它是一个长期的关联而不是组合(因为foo的大小不会因为bar而增加;只有指针的大小被额外添加)但是这也可以被认为是组合?

0 个答案:

没有答案