现在我使用gm:s引擎制作了几年的游戏(我向你保证我不会使用拖放的新手,就像往常一样),我决定开始学习使用c ++本身,你知道扩展我的知识和所有好东西= D.
在这样做时,我一直在尝试将列表类作为练习项目,你知道,有一组节点链接在一起,然后循环抛出这些节点来获取索引的值,这里是我的代码,我因为代码有一个我很难理解的重大问题
template<class type>
class ListNode
{
public:
type content;
ListNode<type>* next;
ListNode<type>* prev;
ListNode(type content) : content(content), next(NULL), prev(NULL) {}
protected:
private:
};
template<class type>
class List
{
public:
List() : SIZE(0), start(NULL), last(NULL) {}
unsigned int Add(type value)
{
if (this->SIZE == 0)
{
ListNode<type> a(value);
this->start = &a;
this->last = &a;
}
else
{
ListNode<type> a(value);
this->last->next = &a;
a.prev = this->last;
this->last = &a;
}
this->SIZE++;
return (this->SIZE - 1);
}
type Find(unsigned int …Run Code Online (Sandbox Code Playgroud) 现在我按照规则要求做了,并且首先看看是否已经回答了这个问题,虽然我确实找到了一个帖子,但它未能解决我的具体问题,因此我自己问.
对于一个简短的上下文,这个错误在我正在制作的双链表列表的节点类中,因此很明显节点必须对其进程和前面的邻居有一些了解
以下代码......
template<class T> class dslListNode
{
public:
dslListNode(T data, dslListNode<T>* next, dslListNode<T>* prev)
: m_data(data)
{
this->m_next = next;
this->m_prev = prev;
}
T m_data;
dslListNode<T>* m_next, m_prev; //<-- line twelve
void purge()
{
if (this->m_next != NULL)
{
this->m_next->purge();
delete this->m_next;
}
}
private:
};
Run Code Online (Sandbox Code Playgroud)
...在第十二行不会停止给我以下错误
Error C2460
'dslListNode<T>::m_prev': uses 'dslListNode<T>', which is being defined
Run Code Online (Sandbox Code Playgroud)
所以你...
我老实说不知道现在发生了什么,我在c ++的技能还没达到我理解为什么会发生这种事情的程度,到目前为止互联网没有帮助这方面,因此我请求帮忙.
为什么会发生这种情况,我该怎么做才能解决它?
为我的语法和拼写道歉btw = D.
谢谢先进=)