1 c++ deep-copy this-pointer self-reference c++11
我想问一下,我们将如何实现一个类的复制构造函数,该类具有自身指针作为其数据成员,我想实现深层复制,
class City
{
string name;
City* parent;
public:
City(string nam, double dcov);
City(string nam, double dcov, City* c);
City(const City& obj)
{
this-> name = obj.name;
// how to assign parent
parent = new City(??)
}
~City();
void setName(string name1);
void setDistanceCovered(int dist);
string getName();
double getDistanceCovered();
City* getParent(){return parent;}
};
Run Code Online (Sandbox Code Playgroud)
我很困惑,这行// how to assign parent
parent = new City(??)会再次调用构造函数而不是深层复制?问候.
怎么样
if (obj.parent != NULL)
parent = new City(*obj.parent)
else
parent = NULL;
Run Code Online (Sandbox Code Playgroud)
除非您在父层次结构中有循环,否则这应该有效.
| 归档时间: |
|
| 查看次数: |
850 次 |
| 最近记录: |