为linkedlist C和x2B创建节点+; 我正在用C++实现链表。我在LinkedList.h中创建了一个结构节点,并尝试在节点中重载运算符。但是当我编译时,我得到了这个错误 代码: \ifndef LINKEDLIST\u H #定义链接列表 类链接列表{ 类型定义结构节点{ int数据; 节点*下一步; }*nodePtr; //如果当前节点对象值为,则返回true //小于参数节点对象值 布尔运算符数据data;

为linkedlist C和x2B创建节点+; 我正在用C++实现链表。我在LinkedList.h中创建了一个结构节点,并尝试在节点中重载运算符。但是当我编译时,我得到了这个错误 代码: \ifndef LINKEDLIST\u H #定义链接列表 类链接列表{ 类型定义结构节点{ int数据; 节点*下一步; }*nodePtr; //如果当前节点对象值为,则返回true //小于参数节点对象值 布尔运算符数据data;,c++,C++,您将节点作为引用传递,因此应该使用node.data 还要删除关键字typedef,因为它只会让您定义类型,而且您的列表肯定需要指向第一个节点的指针 然后,您必须将您的报税表更新为: return this->nodePtr->data < node.data; 返回此->nodePtr->datanodePtr->datadata; 但是,我建议重构,为节点创建一个完全独立的类;您可以将运算符重载放在该类中。尽管我会以不同的方式执行此操作,但问题是您没有在类中定义任

您将节点作为引用传递,因此应该使用
node.data

还要删除关键字
typedef
,因为它只会让您定义类型,而且您的列表肯定需要指向第一个节点的指针

然后,您必须将您的报税表更新为:

return this->nodePtr->data < node.data;   

返回此->nodePtr->data
您似乎试图访问不存在的内容。您的
LinkedList
实现没有名为
data
的变量

最简单的修复方法是更改
操作符
主体:

return this->nodePtr->data < node->data;

返回此->nodePtr->datadata;

但是,我建议重构,为
节点
创建一个完全独立的类;您可以将运算符重载放在该类中。

尽管我会以不同的方式执行此操作,但问题是您没有在类中定义任何位置来保存节点结构。我不确定您是否正在尝试此操作:

class LinkedList{
    typedef struct Node{
        int data;
        Node* next;
    } * nodePtr;

    Node node; // Added this

    //Returns true if the current Node object value is
    //less than the parameter Node object value
    bool operator < (const Node& node) const {
        return this->node.data < node.data;
    }
};
类链接列表{
类型定义结构节点{
int数据;
节点*下一步;
}*nodePtr;
Node;//添加了这个
//如果当前节点对象值为,则返回true
//小于参数节点对象值
布尔运算符<(常量节点和节点)常量{
返回此->node.data
我将其更改为node.data,但仍然存在相同的问题。我想将此节点的数据与传入的节点的数据节点进行比较。返回此->nodePtr->datadata;我尝试了此操作,但仍然存在相同的问题
class LinkedList{
    typedef struct Node{
        int data;
        Node* next;
    } * nodePtr;

    Node node; // Added this

    //Returns true if the current Node object value is
    //less than the parameter Node object value
    bool operator < (const Node& node) const {
        return this->node.data < node.data;
    }
};