gpt4 book ai didi

c++ - 在 C++ 中复制具有指向自身的自指针的类的构造函数?

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:04 26 4
gpt4 key购买 nike

我想问的是,我们如何实现一个类的复制构造函数,该类具有指向自身的指针作为其数据成员,我想实现一个深复制,

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;}


};

我很困惑这一行 //如何分配父级
parent = new City(??)
会再次调用构造函数而不是深层复制?问候。

最佳答案

怎么样

if (obj.parent != NULL)
parent = new City(*obj.parent)
else
parent = NULL;

除非您在父层次结构中有循环,否则这应该有效。

关于c++ - 在 C++ 中复制具有指向自身的自指针的类的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com