小编Tir*_*ous的帖子

为什么"a-> content"给我一个地址而不是一个值?

现在我使用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)

c++ pointers

0
推荐指数
1
解决办法
59
查看次数

"A使用B,正在定义"是什么意思?

现在我按照规则要求做了,并且首先看看是否已经回答了这个问题,虽然我确实找到了一个帖子,但它未能解决我的具体问题,因此我自己问.

对于一个简短的上下文,这个错误在我正在制作的双链表列表的节点类中,因此很明显节点必须对其进程和前面的邻居有一些了解

以下代码......

    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.

谢谢先进=)

c++ visual-studio visual-c++ visual-studio-2015

-1
推荐指数
1
解决办法
755
查看次数