如何在类(c++)中声明/实现特定类型的数组

How to declare/implement array of certain type inside a class (c++)

本文关键字:实现 类型 数组 声明 c++      更新时间:2023-10-16

我正在尝试实现一个新的类,它假设有一个这样的数组:

class myclass { 
    OtherClass<something1, something2>* array;  
   ....   
}

我希望我的c'dor创建一个OtherClass的size=k数组的myclass。我该怎么做?谢谢

像这样:

#include <vector>
class myclass
{
    std::vector<OtherClass<something1, something2>> array;
public:
    explicit myclass(std::size_t n) : array(n) { }
};

如果你真的想使用数组,你应该有这样的东西(不推荐):

class myclass {
    OtherClass<Something1, Something2>* ptr_to;
public:
    myclass(std::size_t sz): ptr_to(new OtherClass<Something1, Something2>[sz]) {}
    ~myclass(){ delete[] ptr_to; }
};

这带来了额外的问题:移动语义对于包含指针的类型来说不是很直观。一个更好的建议是使用矢量,正如Kerrek在上面指出的那样。