我正在尝试实现一个新类,假设有一个像这样的数组:
class myclass {
OtherClass<something1, something2>* array;
....
}
我希望我的c'dor使用sizeC等于OtherClass的数组创建myclass。 我怎样才能做到这一点? 谢谢!
答案 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在上面指出的那样。