C++ Reconstruction

在C++中, 当new 操作符接受一个指针作为参数时, 表示在该指针所对应的地址上进行构建.

new (ptr) Type(args...);

利用这一点, 我们可以在类的成员函数或者构造函数里对类进行重构:

class Base {
public:
  Base() {
    printf("default constructor\n");
  }
  void reconstruct() {
    new (this) Base();
  }
};
posted @ 2024-01-31 13:27  kaleidopink  阅读(9)  评论(0编辑  收藏  举报