gpt4 book ai didi

c++ - 类能否使用此指针或其他方式将自身指向不同的地址?

转载 作者:行者123 更新时间:2023-11-30 01:01:53 25 4
gpt4 key购买 nike

<分区>

一个类是否可以使用例如这个指针?我正在寻找一种在两个对象之间共享数据的方法。例如,如果一个对象的值与另一个对象相同,我会删除一个对象并将两个对象指向相同的数据以节省空间。以下是我在网上找到的示例代码,可以清楚地解决我的问题,但无法编译。

#include<iostream>
using namespace std;

class Test
{
private:
int x;
public:
Test(int x = 0) { this->x = x; delete this;}
void change(Test *t) { this = t; }
void print() { cout << "x = " << x << endl; }
};

int main()
{
Test obj(5);
Test *ptr = new Test (10);
obj.change(ptr);
obj.print();
return 0;
}

错误信息是:

//~>g++ -std=c++14 mm.C -o mm 
//mm.C: In member function ‘void Test::change(Test*)’:
//mm.C:10:33: error: lvalue required as left operand of assignment
//void change(Test *t) { this = t; }

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com