gpt4 book ai didi

c++ - 具有指向同一类对象的指针的类

转载 作者:行者123 更新时间:2023-11-28 02:59:25 24 4
gpt4 key购买 nike

我正在尝试创建带有指向配偶(Person 对象)和 child 表(Person 对象)的指针的类 Person。该类实现了结婚(operator+=)、离婚(method)和生 child (operator++):

class Person{
private:
char* name;
int sex;
Person* spouse;
Person* children[5];
public:
Person();
Person(const Person&);
Person & operator =(const Person&);
Person & operator +=(Person&);//marriage
Person & operator ++();//new children
void divorce();//divorce
Person::~Person();
}

我创建了析构函数,只要没有配偶就删除 child :

Person::~Person(){
if (name !=NULL)
delete [] name;
name=NULL;

if (spouse!=NULL)
spouse->spouse =NULL;
else{
for (int i=0; i<5;i++){
if (children[i]!=NULL)
delete children[i];
children[i]=NULL;
}
}
}

我不知道我的复制构造函数和 operator= 是否应该创建另一个 spouse 和 children 的实例。我试图这样做,但我陷入了无限的引用之中。是否可以创建具有正确分配的配偶和子女的 Person 对象的拷贝?

提前感谢您的任何意见和建议猎鹿人

最佳答案

我认为您的设计方式有误。 Person 类最好只有一个定义明确的职责。现在,它至少代表两个独立的概念 - 家庭。考虑将这两个概念拆分为不同的类型 - 它应该更容易实现。

关于c++ - 具有指向同一类对象的指针的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21219903/

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