c++03 初始化具有多个参数的对象数组
c++03 Initializing a array of objects with multiple parameters
这可能是一个简单的问题,但我正在尝试使用参数化构造函数初始化对象数组。例如:
class A{
public:
int b,c,d;
A (int i, int j);
};
void A::A(int i, int j){
d = rand()
b = 2*i;
c = 3*j;
}
void main(){
A a[50]; /*Initialize the 50 objects using the constructor*/
}
我已经尝试过 this link 中提到的向量初始化,但是,由于有 2 个参数,这不起作用。
此外,如本link所述,手动输入50个初始化值是不可能的,而且很繁琐。
有没有更简单的方法。此外,所有对象的 i,j 值都相同(可通过 main() 获得)但 d
应该是随机值并且与每个对象不同。
为什么不为双参数构造函数提供默认参数?
A (int i = 0, int j = 0);
然后它将代替默认构造函数,A a[50];
将自动使用它50次。
您可以使用std::generate
示例:
A generator(){ return A(1,2); }
std::generate( a, a + (sizeof(a) / sizeof(a[0])), generator );
这可能是一个简单的问题,但我正在尝试使用参数化构造函数初始化对象数组。例如:
class A{
public:
int b,c,d;
A (int i, int j);
};
void A::A(int i, int j){
d = rand()
b = 2*i;
c = 3*j;
}
void main(){
A a[50]; /*Initialize the 50 objects using the constructor*/
}
我已经尝试过 this link 中提到的向量初始化,但是,由于有 2 个参数,这不起作用。
此外,如本link所述,手动输入50个初始化值是不可能的,而且很繁琐。
有没有更简单的方法。此外,所有对象的 i,j 值都相同(可通过 main() 获得)但 d
应该是随机值并且与每个对象不同。
为什么不为双参数构造函数提供默认参数?
A (int i = 0, int j = 0);
然后它将代替默认构造函数,A a[50];
将自动使用它50次。
您可以使用std::generate
示例:
A generator(){ return A(1,2); }
std::generate( a, a + (sizeof(a) / sizeof(a[0])), generator );