Stack和SubClasses之间的正确UML关系是什么?

时间:2015-07-06 06:16:26

标签: c++ uml

我试着弄清楚Stack和SubClasses之间的正确关系对于这种实现是如何看了一会儿:

struct Animal {
    virtual void feed() = 0;
};

struct Dog : Animal {
    void feed() {
        cout << "bark";
    }
};

struct Cat : Animal {
    void feed() {
        cout << "meow";
    }
};

struct AnimalStack {
    Animal *array[10];

    //rest of implementation for the stack
};

int main() {
    //create Stack
    //create new Animal objects and push them to the AnimalStack
}

我认为Stack和Animal之间的关系是一个关联关系,但我也看到有人争论类似问题的依赖关系。

1 个答案:

答案 0 :(得分:0)

这是聚合的一个例子。 https://en.wikipedia.org/wiki/Object_composition#Aggregation

  • Stack有动物
  • 没有声明的所有权

依赖关系的参数是弱的,并不表示Stack存储(指向)动物。它没有以有意义的方式描述代码。

Animal 具有子类的事实是模型的一个独立部分,并不会更改Stack - &gt;动物关系。