C++で配列を動的に取りたい(コンストラクタに引数付きで)
C++で動的に配列を確保し、コンストラクタで初期値を与えようと思っているのですがうまくいかいず困っています
以下のソースなのですがBaseClassをmain内で動的に配列を確保するまでは出来たのですが
コンストラクタに引数を追加するとコンパイルエラーになります
bcRec = new BaseClass(5)[n];やbcRec = new BaseClass(5)[n];
と言った風にしてみたのですが・・・
正しい文法はどのように記述したら良いのでしょう
BaseClass.h
class BaseClass{
private:
int _a;
public :
BaseClass();
BaseClass(int a);
void setint(int a);
int fooint();
};
BaseClass.cpp
#include "BaseClass.h"
BaseClass::BaseClass(int a){
_a = a;
}
void BaseClass::setint(int a){
_a = a;
}
BaseClass::BaseClass(){
_a = 0;
}
int BaseClass::fooint(){
return _a;
}
main.cpp
int main(){
BaseClass bc(10);
BaseClass *bcRec;
int n;
n = 10;
bcRec = new BaseClass[n]; //★本当は引数付きのコンストラクタを使いたい
for (int i = 0; i < n; i++) {
bcRec[i].setint(i * 10);
std::cout << bcRec[i].fooint() << "\r\n";
}
}