如何访问禁用运算符"="类的对象?

How to access the object of the class where "=" operator is disabled?

本文关键字:对象 运算符 何访问 访问      更新时间:2023-10-16

我有一个c类,其对象是在c++代码中作为指针生成的。

现在赋值操作符在该类中被禁用,那么我如何访问该类的对象并进一步使用它呢?

禁用对象赋值并不意味着禁用指针赋值。

例如,假设您的类是UncopyableObject,下面的代码可以正常工作。

UncopyableObject * obj = new UncopyableObject();
obj->doSomething();
UncopyableObject * another = obj;

你只需要注意生命周期。你可以通过使用智能指针来避免关心生命周期。

shared_ptr<UncopyableObject> obj(new UncopyableObject());
obj->doSomething();
shared_ptr<UncopyableObject> another = obj;

您可以简单地使用下面的构造函数实例化它

YourClassName a(arguments);

从这里开始,相互分配YourClassName*类型的指针就可以了

嗯…

在cpp文件中创建该类的指针,并使用堆分配为其分配内存。
class *myfield = (class*)malloc(no_of_instances*sizeof(class))

现在使用头文件中的对象将myfield的地址分配给该对象(希望是指针)

现在应该可以正常工作了。试着让我知道…