【发布时间】:2013-01-24 12:17:06
【问题描述】:
我正在尝试实现一个堆栈和一个队列。我还获得了一个代码来测试堆栈和队列(以查看它们各自的功能是否正常工作)。
我已经实现了 stack 和 quete 的功能,但是在尝试编译它们时出现错误:
在析构函数 `Stack::~Stack()'
'(' 标记之前的预期类名
在他们两个中。
下面是通用的 Stack 类:
template <class T>
class Stack
{
List<T> list;
public:
Stack();
Stack(const Stack<T>& otherStack);
~Stack();
}
List 类:
template <class T>
class List
{
ListItem<T> *head;
public:
List();
List(const List<T>& otherList);
~List();
}
现在 List 类的析构函数工作得很好。所以请记住,我对析构函数的实现是:
template <class T>
Stack<T>::~Stack()
{
list.~List();
}
我在这里做错了什么?
【问题讨论】:
-
不要显式调用析构函数 - 语言会为你处理。
-
失去
list.~List()呼叫。该成员将自毁。 -
@molbdnilo,@WhozCraig 谢谢大家,现在可以使用了!
标签: c++ class linked-list stack destructor