我需要一些帮助

这段代码看起来正确吗?

#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),则它可以工作。

10-08 04:11