首页 > 解决方案 > 删除动态分配的类数组

问题描述

如何删除动态分配的数组产品?

Z2* prod = new Z2[new_degree];

班级:

class Z2 {
public:
    Z2() { modulo = 0; };
    Z2(short int a) { if (a > 0) modulo = a % 2; else modulo = -a % 2; };
private:
    int modulo;

编辑:我只能使用这个:

<iostream>,
<sstream>,
<string>,
<cstdlib> 
<cstring>

标签: c++

解决方案


在所有版本的C++中,您执行以下操作:

#include <vector>
std::vector<Z2> prod(new_degree);

如果由于某种原因您不能使用std::vector,那么从 C++11 开始就有std::unique_ptr(或std::shared_ptr)。

#include <memory>
auto prod = std::make_unique<Z2[]>(new_degreee);

这些中的任何一个都将管理完全prod移交给了 C++;您不再需要担心何时(或如何)释放prod.


推荐阅读