Pointers 表达式必须是可修改的L值

Pointers 表达式必须是可修改的L值,pointers,Pointers,我有一个代码段,在那里我得到的错误表达式必须是一个可修改的L值 节点1.h class node{ int data; public: node* next; node(){} void setdata(int a){data=a;} char getdata(){return data;} node* Next(){ return next;} }; list.cpp #include"node1.h" #include<stdlib.h>

我有一个代码段,在那里我得到的错误表达式必须是一个可修改的L值

节点1.h

class node{
int data;

public:
node* next;
node(){}
void setdata(int a){data=a;}
char getdata(){return data;}
node* Next(){
return next;}
                  };
list.cpp

#include"node1.h"
#include<stdlib.h>
#include<iostream>
class list{
node* first;
public:
list(){first=NULL;}
 void list::append(char data){
 node * tmp=first;
 node* newnode=new node;
    newnode->setdata(data);

    tmp->Next()=newnode;//line 1
    tmp->next=newnode;//line 2
}
 }
#包括“node1.h”
#包括
#包括
班级名单{
节点*第一;
公众:
list(){first=NULL;}
void list::append(字符数据){
节点*tmp=第一个;
node*newnode=新节点;
新建节点->设置数据(数据);
tmp->Next()=newnode;//第1行
tmp->next=newnode;//第2行
}
}

line1给出了一个错误,即表达式必须是可修改的l值,但line1和line2是否应该做相同的事情?

您不能更改
Next
的值,因为它是一个函数