gpt4 book ai didi

c++ - 声明一个类的变量而不创建它的实例

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

我正在学习 C++。

我想声明一个变量而不创建它的实例。

MyClass variable;

// More code

int main(int argc, char **argv)
{
// More code
variable = MyClass(0);

// More code
}

如果我这样做,并且 MyClass 只有一个声明为 MyClass::MyClass(int value) 的构造函数,它将失败。

我需要将其设为全局,因为我将在回调函数中使用它,并且我可以将该变量作为参数传递。

而且,我不想在声明变量时创建类的实例,然后在使用构造函数时创建另一个实例。我认为我在浪费资源和 CPU 时间。

是否可以在没有实例的情况下声明一个变量?

最佳答案

使用指针来延迟实例化。喜欢smart pointers到原始指针,因此您不必担心手动内存管理。

#include <memory>

std::shared_ptr<MyClass> variable;

// More code

int main(int argc, char **argv)
{
// More code
variable = std::make_shared<MyClass>(0);

// More code
}

是否使用std::unique_ptrstd::shared_ptr取决于你打算用指针做什么。

关于c++ - 声明一个类的变量而不创建它的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57046237/

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