我正在使用的模板是
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_];
答案 0 :(得分:1)
当模板参数为value_type
时,我不明白为什么使用T
只是使用它:
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 []
手动释放内存。