具有构造函数的实例数组

时间:2015-10-08 14:44:00

标签: c++ arrays class initialization

我有一个类F,它有一个像这样的构造函数:

public:
  F(int N){
    Tree = new int[N];
  }

我想创建一个包含26个F

实例的数组

如果构造函数没有参数,我可以刚刚完成F ArrayOfF[26]

但是,这个构造函数确实有一个参数,而F(N) ArrayOfF[26]行的某些东西不起作用。

这样做的好方法是什么?

1 个答案:

答案 0 :(得分:2)

一个选择是明确的:

F ArrayOfF[26] = {
    F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), F(9), F(10),
    F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), F(9), F(20),
    F(1), F(2), F(3), F(4), F(5), F(6)
};

std::vector也是一个不错的选择。

std::vector<F> ArrayOfF(26, F(42));

std::vector<F> ArrayOfF;
ArrayOfF.reserve(26); // Optional: to do only one allocation.
for (int i = 0; i != 26; ++i) {
    ArrayOfF.push_back(F(2 * i + 5));
}