【发布时间】:2014-06-10 19:07:16
【问题描述】:
我目前正在自学 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指针。 -
您的析构函数似乎没有明显问题,但同意
tempList = new list<char>;可能会帮助您的构造函数。 -
@RetiredNinja 这是我目前仍在学习的代码。正确的实现方式是什么?
-
为什么要以指针开头?为什么不只是
std::list<char> tempList;? (尽管对于char,std::vector<char>几乎肯定是一个更好的选择,除非您需要能够插入和删除任意元素而不会使其他元素的迭代器失效。)
标签: c++ class linked-list destructor