我知道C ++中的指针变量中包含的地址可以更改。但是,我无法更改存储在this
指针中的地址。在下面给出的代码中,它给出了赋值this = &source
的错误:
需要左值作为赋值的左操作数
我从here中了解到有关左值的信息。这使我得出结论:this
不符合有效的lvalue
的条件,但是为什么不呢?
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
class foo{
public :
char *name;
void changeAddress(foo &source);
};
void foo::changeAddress(foo &source){
//this = 0x7ffd70609fe8
// &source = 0x7ffd70609ff0
this = &source;
}
int main(){
foo f1;
foo f2 ;
f1.changeAddress(f2);
return 0;
}