gpt4 book ai didi

c++ - 手动对象构造函数调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:09 25 4
gpt4 key购买 nike

能否请您告诉我是否可以手动调用对象构造函数?我知道这是错误的,我永远不会在自己的代码中做这样的事情,我知道我可以通过创建和调用初始化函数来解决这个问题,但问题是我偶然发现了一个有数千行代码的情况对象及其父类的构造函数...

class MyClass()
{
MyClass() { }
virtual ~MyClass();

void reset()
{
this->~MyClass();
this->MyClass::MyClass(); //error: Invalid use of MyClass
}
};

最佳答案

您仍然可以将构造/析构移动到单独的函数中并直接调用它们。即

class MyClass {
public:
MyClass() { construct(); }
~MyClass() { destruct(); }

void reset() {
destruct();
construct();
}

private:
void construct() {
// lots of code
}

void destruct() {
// lots of code
}
};

关于c++ - 手动对象构造函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com