我需要一些帮助
这段代码看起来正确吗?
#include "programass.h"
#include <cstdlib>
#include <iostream>
#include <string>
#include "Student.h"
using namespace std;
template<class emptyValue>
struct DoublyLinkedNode
{
emptyValue data;
DoublyLinkedNode *prev, *next;
};
typedef DoublyLinkedNode<int> numListNode;
DoublyLinkedNode *listHead = NULL;
DoublyLinkedNode *listTail = NULL;
我在调试器中始终收到“*”错误之前的“预期构造函数,析构函数或转换?”在最后两行,我做错了什么? :(
最佳答案
你做了
typedef DoublyLinkedNode<int> numListNode;
但在接下来的两行中
DoublyLinkedNode *listHead = NULL;
DoublyLinkedNode *listTail = NULL;
您忘记使用该新的
numListNode
类型。更改为numListNode *listHead = NULL;
numListNode *listTail = NULL;
因为没有模板参数就不能使用模板类,并且您尝试在应该使用
DoublyLinkedNode *listHead
时执行DoublyLinkedNode<something> *listHead
。因此,如果您使用指定模板参数的typedef
(作为int
),则它可以工作。