gpt4 book ai didi

c++ - 使用智能指针作为全局变量

转载 作者:太空狗 更新时间:2023-10-29 23:35:34 25 4
gpt4 key购买 nike

假设我有一个程序,我必须在其中使用一个全局变量(某种类类型)。

我希望能够使用智能指针,这样我就不必担心删除它了。

在一些文件 Common.hpp 文件中我有声明:

extern unique_ptr<CommandBuffer> globalCommandBuffer;

在我的 main.cpp 中:

#include "Common.hpp"

int main(int argc, char* argv[]) {
globalCommandBuffer(new CommandBuffer());
}

这会产生许多编译错误。很明显我做错了。

我的问题是:

  • 对全局变量使用智能指针是一个好的设计选择吗?
  • 如果是,正确的做法是什么?
  • 哪个智能指针更好?

最佳答案

你想要:

globalCommandBuffer.reset(new CommandBuffer());

或者:

globalCommandBuffer = std::make_unique<CommandBuffer>();

全局变量很少是个好主意。

关于c++ - 使用智能指针作为全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34534927/

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