C++中一个类的构造要依赖于外部的类,那么它的复制构造函数如何写啊

C++中一个类的构造要依赖于外部的类,那么它的复制构造函数怎么写啊?
比如:我现在有两个类Object 和 Link。
class Object
{
     //一些属性
};

class Link
{
    Object *Osrc;     //源点
    Object *Odest;  //终点
public:
    Link(Object *obj1, Object *obj2){Osrc=obj1;Odest=obj2; };
    Link(const Link& link)}{Osrc=???;Odest=???};   //复制构造函数不知道怎么处理了
};
示意图:C++中一个类的构造要依赖于外部的类,那么它的复制构造函数如何写啊

类Link的构造要依赖于与外部相连的Object.所以复制构造函数里不能直接用深复制:Osrc=new Object(*link.Osrc);
所以我的问题是应该要怎么处理复制构造呢??
求高手解答啊,谢谢
------解决思路----------------------
这个取决于需求或者你自己的设计,你自己觉得复制构造应该做什么,代码就怎么写。
比如你画的这个示意图,如果从link1复制构造一个link2,你想让link2是什么样子?我理解就是在object1和object2之间再多画一条线,这样的话浅复制即可Link(const Link& link)}{Osrc=link.Osrc; Odest=link.Odest;};
------解决思路----------------------
引用:
Quote: 引用:

完全取决于你的需求嘛,想怎样都可以的。

既可以拷贝地址(指针的值),也可以用深拷贝,如果Object提供了类似virtual Object* Create() const 的接口的话。


谢谢你的回复,主要我现在的需求是:比如,当我选中图中的全部组件,然后复制,生成了Object3、Object4和Link2,则此时Link2的源点和终点应该指向生成的Object3和Object4。
然后我现在的问题是:Link复制时应该怎样查找到复制后的Object3,Object4,然后把指针指向他们?


给Object增加一个virtual Object* Clone() const 的成员函数负责深拷贝,然后再link的构造函数中不用地址拷贝,而用Clone()接口作深拷贝。
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

完全取决于你的需求嘛,想怎样都可以的。

既可以拷贝地址(指针的值),也可以用深拷贝,如果Object提供了类似virtual Object* Create() const 的接口的话。


谢谢你的回复,主要我现在的需求是:比如,当我选中图中的全部组件,然后复制,生成了Object3、Object4和Link2,则此时Link2的源点和终点应该指向生成的Object3和Object4。
然后我现在的问题是:Link复制时应该怎样查找到复制后的Object3,Object4,然后把指针指向他们?


给Object增加一个virtual Object* Clone() const 的成员函数负责深拷贝,然后再link的构造函数中不用地址拷贝,而用Clone()接口作深拷贝。

这需求别想着折腾什么拷贝构造赋值。老老实实另外写一个函数,一次调用直接构造掉所有新的link。