gpt4 book ai didi

使用 pop_back 的 C++ 析构函数

转载 作者:行者123 更新时间:2023-11-30 02:46:45 25 4
gpt4 key购买 nike

我目前正在自学 C++,但在创建析构函数时遇到了一些问题。

这是我正在努力处理的主要部分的代码

#include <list>

using namespace std;

class Test
{
private:
list<char> *tempList;
public:
Test()
{
tempList->push_back('a');
tempList->push_back('b');
tempList->push_back('c');
}

~Test()
{
while (tempList->size() != 0)
{
tempList->pop_back();
}
}
};

如您所见,我正在使用 std::list 来实现双向链表。目前我正在摆弄它,因此为什么将变量命名为 tempList 以及为什么我将 a、b、c 放在那里。

我需要一些帮助来创建析构函数。我曾尝试创建自己的解决方案,但后来我开始谷歌搜索其他解决方案,但没有一个看起来像我的。

我想让我的析构函数做的主要事情是清理 tempList,它是一个 char 的双向链表。我认为需要做的是我需要找出一种方法来删除链表中的每个元素。

最佳答案

假设 tempList 已正确分配和释放(现在还没有),您不必调用任何东西 - 列表中的元素将自动销毁。

最简单和最干净的解决方案是根本没有指针:

class Test
{
private:
list<char> tempList;
public:
Test()
{
tempList.push_back('a');
tempList.push_back('b');
tempList.push_back('c');
}
};

关于使用 pop_back 的 C++ 析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286829/

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