C++ 错误:绑定到类型discards限定符的引用

C++ 错误:绑定到类型discards限定符的引用,c++,eclipse,binding,linked-list,C++,Eclipse,Binding,Linked List,我很抱歉,我知道以前有人问过这个问题,但即使我试着阅读类似问题的所有其他答案,我也无法理解我的错误。 我使用伊柯丽斯,我在C++编程,我正在尝试用模板制作链接列表。 我使用的节点类对我的链表很有用,我有以下函数规范: template <class item> void list_insert(node<item>*& head, const item&e); 好的。我想使用此函数,以便在我的列表类中可以使用此函数: template <class

我很抱歉,我知道以前有人问过这个问题,但即使我试着阅读类似问题的所有其他答案,我也无法理解我的错误。 我使用伊柯丽斯,我在C++编程,我正在尝试用模板制作链接列表。 我使用的节点类对我的链表很有用,我有以下函数规范:

template <class item>
void list_insert(node<item>*& head, const item&e);
好的。我想使用此函数,以便在我的列表类中可以使用此函数:

template <class item>
class list{
public:
    list(){head=NULL;}

    void set_head(node<item>*h){head=h;}
    node<item>*& get_head(){return head;}
    const node<item>* get_head()const{return head;}

    bool empty()const{return head==NULL;} // is the list empty?

    void insert(const item&e){list_insert(head,e);} //ERROR GETS HERE!
    void print(); // print the list clockwise
    void printback(); //print it counterclockwise

private:
    node<item>* head;
};
我这样做是为了实现如下列表插入:

template <class item>
void list_insert(node<item>*& head, const item& e){
    head= new node<item>(e,head);
}
现在,在最后一段代码中,我得到了以下错误:

错误:将“const int”绑定到“int&”类型的引用会丢弃限定符

我已经读到,基本上编译器告诉我ehi,如果你这样做,你想要的常量条件将被违反,所以我给你一个错误,好吧,但我仍然不理解实际的错误,或者,无论如何,它背后的原因是什么

也因为我应该做一个逆时针的插入函数,但实际上我在顺时针方向有问题,所以我被卡住了

事先非常感谢你

编辑:很抱歉,我没有提供我正在做的事情的实际例子。 基本上,我正在尝试制作一个链表——简单而基本的考试

我的链表基本上是由节点组成的堆栈。节点是我的列表的组成部分,由数据部分和到下一个节点部分的链接组成:

template <class item>
class node{
public:
    //CONSTRUCTOR
    nodo(item & d=item(), nodo*l=NULL){
        data=d;
        link=l;
    }

    //GET E SET METHODS
    void set_data(item& d){data=d;}
    void set_link(node*l){link=l;}

    item& get_data(){return data;}
    const item& get_data()const{return data;}
    node*& get_link(){return link;}
    const node* get_link()const{return link;}

private:
    item data;
    node* link;
};
现在,如前所述,我的列表由节点组成,在私有部分,我声明了一个指向列表头部的指针

 node<item>* head;
这就是这段代码的例子——然后问题就发生了,就像我以前写的那样

在节点的构造函数中,您应该按常量引用传递项,并且节点类中存在一些输入错误,可能是复制+粘贴错误


错误信息非常清楚。问题是什么?请参阅节点构造函数的声明。问题是我在main中使用as,但对于我使用的每一种数据类型,函数始终存在const声明的绑定问题。正如编译器所说,这是一个绑定问题,但我无法理解它,因为我实际上是通过推理来放置变量的。在我的列表插入函数的实现中不断出现错误。请提供MCVE。节点是什么啊,对不起,我的错。我把帖子删掉了。更好吗?ohmygoditworked。是的,对不起,打字错误是因为复制+粘贴错误,我很抱歉,但它确实起作用了。我实际上没有考虑构造函数,老实说,我只是痴迷于函数的实现。这就是为什么我意识到构造器有一些问题的原因,我很抱歉。无论如何,非常感谢你的帮助!
class node{
public:
    //CONSTRUCTOR
    node(item const & d=item(), node*l=0)
        : data(d), link(l) // prefer initializer list here
    { }
    //...