【发布时间】:2011-08-01 06:48:12
【问题描述】:
好的,现在在 C++ 学习了大约 2 天。之前刚做过javascript...
我正在使用链表制作模板队列。当我尝试从 insidek queue.cpp 创建一个新的 Node 结构时,我的编译器不喜欢它
//queue.h:
template <class Object>
class Queue
{
public:
Queue(); // Default
Queue(const Queue& original); // Copy
~Queue(); // Destructor
const Queue& operator=(const Queue& rightHandSide); //overloaded op
bool isEmpty() const;
bool enqueue(const Object& d);
bool dequeue(Object& d);
private:
// Node definition
struct Node
{
Object data;
Node * next;
};
// Queue data members
Node * front, * back;
};
所以,我需要在我的复制构造器中创建一个新节点。
//queue.cpp
template <class Object>
Queue<Object>::Queue(const Queue& original)
{
if (original.isEmpty()) {
front = back = NULL;
} else {
front = back = new Queue::Node; //this is line 26
front->data = original.front->data;
Queue::Node * ptr = original.front->next;
while (ptr != NULL) {
back->next = new Queue<Object>::Node;
back = back->next;
back->data = ptr->data;
ptr = ptr->next;
}
}
}
queue.cpp: In copy constructor âQueue<Object>::Queue(const Queue<Object>&)â:
queue.cpp:26: error: expected type-specifier
queue.cpp:26: error: expected `;'
有什么帮助吗?提前致谢。
【问题讨论】:
标签: c++ class templates struct