如何访问禁用“=”运算符的 class 的对象?
How to access the object of the class where "=" operator is disabled?
我有一个 c class ,它的对象在 C++ 代码中生成为指针。
现在赋值运算符在 class 中被禁用,所以我如何访问 class 的对象并进一步使用它。
对象分配被禁用并不意味着指针分配被禁用。
例如,假设您的 class 是 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 的指针,并使用堆分配为其分配内存。
class *myfield = (class*)malloc(no_of_instances*sizeof(class))
现在使用头文件中的对象将 myfield 的地址分配给该对象(希望是指针)
现在它应该可以正常工作了..试着让我知道..
我有一个 c class ,它的对象在 C++ 代码中生成为指针。
现在赋值运算符在 class 中被禁用,所以我如何访问 class 的对象并进一步使用它。
对象分配被禁用并不意味着指针分配被禁用。
例如,假设您的 class 是 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 的指针,并使用堆分配为其分配内存。
class *myfield = (class*)malloc(no_of_instances*sizeof(class))
现在使用头文件中的对象将 myfield 的地址分配给该对象(希望是指针)
现在它应该可以正常工作了..试着让我知道..