我想知道是否可以通过在成员函数中创建新结构并将其分配给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
吗?如果没有,我如何在成员函数中更新对象中的所有值而不单独更新每个元素?
答案 0 :(得分:2)
没有。这只会改变this
指针。然而你可以做的是:
*this = newobj(1);
将执行值复制(或调用移动语义)。