我有一个.h文件,其中包含以下内容:
#ifndef CS240_LINKED_LIST_H
#define CS240_LINKED_LIST_H
#include <string>
//! LLNode implements a doubly-linked list node
class LLNode {
friend class LinkedList;
public:
LLNode(const std::string & v, LLNode * p, LLNode * n) :
value(v), prev(p), next(n)
{
}
private:
std::string value; //!< value stored in the node
LLNode * prev; //!< pointer to previous node in the list
LLNode * next; //!< pointer to next node in the list
};
//! LinkedList implements a doubly-linked list
class LinkedList
{
public:
//! No-arg constructor. Initializes an empty linked list
LinkedList();
//! Copy constructor. Makes a complete copy of its argument
LinkedList(const LinkedList & other);
private:
//! two dummy nodes to keep track of the beginning and end of the list.
LLnode beginning;
LLnode end;
int size;
};
#endif
在cpp文件中,我有:
#include "LinkedList.h"
LinkedList::LinkedList(){
this->beginning.prev = NULL;
this->beginning.next = this->end;
this->end.prev = this->beginning;
this->end.next = NULL;
}
下面是输出:
>g++ -o LinkedList.o LinkedList.cpp
In file included from LinkedList.cpp:1:
LinkedList.h:37: error: 'LLnode' does not name a type
LinkedList.h:38: error: 'LLnode' does not name a type
LinkedList.cpp: In constructor 'LinkedList::LinkedList()':
LinkedList.cpp:4: error: 'class LinkedList' has no member named 'beginning'
LinkedList.cpp:5: error: 'class LinkedList' has no member named 'beginning'
LinkedList.cpp:5: error: 'class LinkedList' has no member named 'end'
LinkedList.cpp:6: error: 'class LinkedList' has no member named 'end'
LinkedList.cpp:6: error: 'class LinkedList' has no member named 'beginning'
LinkedList.cpp:7: error: 'class LinkedList' has no member named 'end'
我不知道该怎么解决这个问题。否则我该如何设置开始和结束对象?让你知道,我是一名学习C++的Java程序员。
发布于 2011-09-24 20:06:57
LLNode
拼写为LLnode
.this->beginning
和this->end
成员在LinkedList类中的地址。
LinkedList::LinkedList(){
this->beginning.prev = NULL;
this->beginning.next = &this->end;
this->end.prev = &this->beginning;
this->end.next = NULL;
}
发布于 2011-09-24 20:06:21
您需要声明构造函数。尝试:
class LinkedList
{
private:
LLnode beginning;
LLnode end;
public:
LinkedList();
};
发布于 2011-09-24 20:06:45
在类声明中没有LinkedList::LinkedList()
声明。
这应该会给你一个不同的错误;g++给了我
error: definition of implicitly-declared ‘LinkedList::LinkedList()’
你确定你已经发布了你正在编译的代码吗?将你的代码缩小到一些小但完整的部分,然后将确切的源文件复制并粘贴到你的问题中。(例如,没有声明LLnode
)。给我们展示一些我们可以自己尝试的东西。
https://stackoverflow.com/questions/7541548
复制相似问题