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

时间:2014-04-28 22:50:53

标签: c++ arrays class

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

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

我希望我的c'dor使用sizeC等于OtherClass的数组创建myclass。 我怎样才能做到这一点? 谢谢!

2 个答案:

答案 0 :(得分:3)

像这样:

#include <vector>

class myclass
{
    std::vector<OtherClass<something1, something2>> array;

public:
    explicit myclass(std::size_t n) : array(n) { }
};

答案 1 :(得分:0)

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

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

这带来了额外的问题:对于带有指针的类型,移动语义不是非常直观。更好的建议是使用vector,正如Kerrek在上面指出的那样。