gpt4 book ai didi

C++ 11 智能指针的使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:42 24 4
gpt4 key购买 nike

我对 C++ 11 中的智能指针有疑问。我已经开始研究 C++ 11(我通常使用 C# 编程)并阅读了一些关于智能指针的内容。现在我有一个问题,智能指针是否完全取代了“旧”样式的指针,我应该一直使用它们吗?

unique_ptr 似乎解决了 C++ 中内存管理的所有问题,还是我错了?

例如:

std::unique_ptr<GameManager> game (new GameManager());

game->Start();

似乎比:

聪明得多
auto *game2 = new GameManager();

game2->Start();

delete game2;

谢谢,我有点糊涂了!

最佳答案

对于显示的用法,虽然 unique_ptr 比原始指针更好,因为它指示分配资源的所有权,但您可能根本不应该使用任何类型的指针。而只是声明一个本地:

GameManager game;
game.Start();

如果必须将所有权授予其他对象,这可能还不够,而 unique_ptr 的所有权可以轻松转移。

关于C++ 11 智能指针的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26076921/

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