class A 和 class C 使用什么 UML 关系,其中 class C 是 Class B 和 Class A 的成员取决于 Class乙

What UML relation to use for class A and class C, where class C is a member of Class B and Class A depends on Class B

这是一个代码示例。

class C;

/* B is a container of class C */
class B
{
public:
    size_t size() const;

    C const& operator[](size_t index) const {
        return elements[index];
    }

    std::vector <C> elements;
}


class D
{
public:
    D(C const& c);
}

/* A is a container of class D */
class A
{
public:
    A(B const& b) {

        // TO construct Class D instance, A needs to pass reference to class C 
        // to class D's constructor.
        for (int i = 0; i < b.size(); ++i) {
            elements.emplace_back(b[i]);
        }
    }
    std::vector <D> elements;
}

这里,

  1. 作文 D

  2. B 作文 C

  3. A 依赖 B

  4. D 依赖 C

在 A 和 C 之间使用哪个 UML 关系?

从A到C是单向关联?

这就是你所说的(由于我的 Cxx 知识有限,所以不太确定你的代码):

你可以清楚地看到,A 也依赖于 C,因为它是 B 的成员。但是你不需要用依赖来表达它,因为它很明显。

注意:根据@Ister的评论,A不直接依赖于C,因为它不使用它。 UML 图表明了这一点。这种依赖只是间接的,因为(可能)B 需要 C 才能正常工作。这就是为什么 C 第一手放在 B 里面。但是在这里绘制从 AC 的依赖关系是错误的。