我可以使用`this`关键字从自己的成员函数更新对象吗?

时间:2014-03-25 22:14:42

标签: c++

我想知道是否可以通过在成员函数中创建新结构并将其分配给this关键字来替换整个数据结构。假设我有一个名为object的数据结构,它有一个名为update的成员函数,如下所示:

struct object {
  //guts of the object
}


object newobj(int i) {
  //function to create a new object from an integer
}

object::update(parms) {
  //member function of objects
  this = newobj(1)
}

我可以这样更新object吗?如果没有,我如何在成员函数中更新对象中的所有值而不单独更新每个元素?

1 个答案:

答案 0 :(得分:2)

没有。这只会改变this指针。然而你可以做的是:

*this = newobj(1);

将执行值复制(或调用移动语义)。