在模板类中分配数组
Posted
技术标签:
【中文标题】在模板类中分配数组【英文标题】:Allocating an array in a templated class 【发布时间】:2015-07-02 02:42:29 【问题描述】:我使用的模板是
template<typename T, size_type MAX_DIM = 500>
我想弄清楚如何正确分配。 变量 T ** array_ 在构造函数中声明。 这是我现在所拥有的,但我尝试了几种不同的语法都无济于事。
array_=new value_type*[dim1_];
for ( long i = 0u; i < dim1_; i++)
array_[i] = new value_type[dim2_];
【问题讨论】:
【参考方案1】:当模板参数为T
时,我不明白您为什么要使用value_type
,只需使用它:
template<typename T, size_t MAX_SIZE = 500>
class MyArray
T** array_;
public:
MyArray(size_t dim1_, size_t dim2)
array_ = new T*[dim1_];
for (size_t i = 0; i < dim2; ++i)
array_[i] = new T[dim2];
;
请注意,由于您没有使用std::vector
或std::array
,您需要通过析构函数中的delete []
手动释放内存。
【讨论】:
循环中的错字,应该是i < dim1_
以上是关于在模板类中分配数组的主要内容,如果未能解决你的问题,请参考以下文章