在C ++中制作此指针的本地副本

时间:2018-01-17 00:16:12

标签: c++

是否可以在类函数中创建'this'指针的本地副本?目的是修改副本并将其返回,而不修改“this”本身。

该功能如下所示:

classA classA::function() {
   classA newObject = //where I need help; 
   //modification of newObject
   return newObject;
}

1 个答案:

答案 0 :(得分:6)

只要您的类提供复制构造函数,只需根据需要解除引用this指针,就可以从this创建副本:

classA classA::function() {       
   return *this;
       // ^^^^^ Simply dereference and let the compiler do the copying
}

确保您的班级声明遵循Rule of 3/5/zero