gpt4 book ai didi

c++ - 如何在C++中制作类列表

转载 作者:行者123 更新时间:2023-11-28 03:32:12 25 4
gpt4 key购买 nike

我的部分任务是创建一个类,其中包含两个其他类的两个列表,并创建“四大类”(构造函数、复制构造函数、operator=、析构函数)

这是我做的:

using namespace std;

class A{...};
class B{...};

class C{
list<A> a;
list<B> b;
public:
C();
~C();
C(const C& c);
void operator=(const C& c);
};

C::C(){
//How to allocate memory for a and b?
}

C::~C(){
//How to free the memory?
}

C::C(const C& c){
a=c.a;
b=c.b;
}

void operator=(const C& c){
if(&c==this) return;
// how do I delete a and b?
a=c.a;
b=c.b;
}

你能把我不明白的地方清除掉吗(如代码中的注释)。如果我没有做对任何事情,也可以提出建议?

最佳答案

由于您使用的是值(std::list 值),因此无需执行任何操作。您的构造函数将调用 std::list构造函数自动分配所需的任何资源。您的析构函数将调用 std::list析构函数,释放它获取的资源。

如果您保存指向列表的指针(即 std::list<A> *a;)或指针列表(std::list<A*> a;')或两者(std::list<A*> *a;),您需要一些额外的工作。

关于c++ - 如何在C++中制作类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12217061/

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