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

标签 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吗?如果不是,我如何在成员函数内更新对象中的所有值而不单独更新它的每个元素?

最佳答案

没有。这将仅更改 this 指针。然而,您可以做的是:

*this = newobj(1);

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

关于c++ - 我可以使用 `this` 关键字从对象自身的成员函数更新对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22647429/

相关文章:

c++ - 从函数返回将上下文更改为 NULL

c++ - 在类型 : map<int, map<int, int>> 上使用 operator[][] 时不会更新值

c++ - 如何正确初始化包含许多数据成员的类?

c++ - QtCreator GUI 应用程序,其中包含小部件源代码并在代码中打开

c++ - 与 ARM Neon vtbx 的字节序混淆

python - 为什么使用 Python mmap 模块比从 C++ 调用 POSIX mmap 慢得多?

c++ - 请推荐一个适用于XP、Win7、Win8的二维动画c++工具

c++ - 在图片框中以 cv::Mat 格式显示网络摄像头提要

c++ - 在寄存器上加载 double 浮点值时出错?

c++ - 使用 IBM Rational Rhapsody 的显式成员特化