C++ 以下哪些是关联关系?

C++ 以下哪些是关联关系?,c++,software-design,C++,Software Design,我一直在研究对象关系,如果有任何误解,我想澄清 下面是一些代码: class object { int data; public: object(int d): data(d) { } int get_data() { return data; } int set_data(int d) { data = d; } }; class A { object

我一直在研究对象关系,如果有任何误解,我想澄清

下面是一些代码:

class object 
{
    int data;

public:

    object(int d): data(d)
    {
    }

    int get_data() 
    { 
        return data;  
    }

    int set_data(int d)
    {
        data = d;
    }

};


class A
{
    object* o;

public:

    A(object& test) : o(&test) 
    {
    }

};


class B
{


public:
    B()
    {
        object o(10);
        o.set_data(100);
    }
};



class C
{
public:
    C(object& o)
    {
        o.set_data(100);
    }
};
哪些类与类“对象”具有关联关系

我认为A是聚合
我不确定B是否正确,但如果非要我猜的话,我相信是关联
我相信C是联想

我不是100%确定我的答案


如果在另一个对象函数中创建并使用对象,是否认为对象之间存在关系?示例:B类。

需要记住的一个好提示是,组合限制了对象的生命周期(笔记本电脑>屏幕),聚合只是声明存在父/子关系,但它们可以独立存在(笔记本电脑>鼠标),而对于关联来说,根本没有关系,它们只是在某个点连接(笔记本电脑-用户)

这里是的,如果你创建了一个对象,你在其中绑定了“object”参数,当你销毁一个对象时,你也销毁了内部对象,所以它是一个聚合


在B&C类中,您没有设置任何对象,因此根本没有关联,只是C类和B类之间的依赖关系,但我相信这是可以解释的。

您需要仔细阅读这些概念。你的三个答案都不正确。你能澄清为什么这三个答案都不正确吗?你能给我澄清一下A班和“对象”班的关系吗?我认为,因为对象A的数据成员是指针,所以它不会是组合,因为传递给构造函数的对象“test”即使在对象A被销毁时也可以存在。是的,你是对的,它只是一个聚合,但指针与它无关,如果对象在构造函数中创建,并在同一个析构函数中销毁,那么它将是一个组合。