gpt4 book ai didi

c++ - 我应该将 RAII 应用于我分配的所有数组吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:42 24 4
gpt4 key购买 nike

我现在正在学习 C++。这是一种非常复杂的语言,我不确定应该使用哪个功能以及何时使用。

C++ Primer 介绍了 RAII 作为确保异常安全的方法。这是否意味着,作为一种好的行为,当我想使用一个数组时,我应该将数组放入一个类中来分配和销毁资源。我知道我的想法很简单,或者说很幼稚。

我只是好奇什么是好的 C++ 编码行为。

最佳答案

RAII 表示资源与对象生命周期相关联。
C++ 的每个 STL 类都遵循这个原则,这意味着如果您需要一个数组,您可以简单地使用 std::vector

当您的实例超出范围时, vector 类的析构函数将负责删除资源。

这意味着在你的情况下,而不是像这样使用新的:

int *array = new int[n];

你应该使用:

vector<int> array(n);

如果你真的需要在堆上分配一个共享指针,并且使用 RAII 仍然是安全的,你可以这样做(需要 C++11):

shared_ptr<vector<int>> array(new vector<int>(10));

关于c++ - 我应该将 RAII 应用于我分配的所有数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28246038/

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