初始化带有多个参数的对象数组
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*/
}
我已经尝试过这个链接中提到的向量初始化,但是,由于有2个参数,这不起作用。
另外,正如这个链接中提到的,手动输入50个初始化值是不可能的,也是乏味的。
有更简单的方法吗?此外,i,j值对于所有对象(通过main()可用)都是相同的,但d
应该是随机值,并且与每个对象不同。
可以使用std::generate
的例子:
A generator(){ return A(1,2); }
std::generate( a, a + (sizeof(a) / sizeof(a[0])), generator );
为什么不为双参数构造函数提供默认参数呢?
A (int i = 0, int j = 0);
那么它将代替默认构造函数,A a[50];
将自动使用它50次
相关文章:
- 将对象数组的引用传递给函数
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 类对象数组的问题会导致崩溃
- Arduino C++在构造函数中用参数声明对象数组
- 使用对象数组对 SFML 进行动画处理
- C++ 对象数组堆栈溢出
- 如何将对象数组作为参数传递给模板
- 使用向量初始化参数化构造函数的对象数组
- 如何初始化对象数组?
- C++创建对象数组
- 在对象数组中搜索字符串并返回相应值的函数
- 有没有办法使用该类的构造函数初始化另一个类的私有部分内的对象数组?
- 如何在运行时在对象数组中动态追加新对象C++并打印它们
- 为什么我在声明对象数组时不能使用 -> 运算符?
- 编译时生成应在构造函数中创建的非 constexpr 对象数组
- 使用 C++ 创建对象数组
- 对象数组打印空白字符串
- 重载运算符 [] 用于从对象数组中给出特定索引
- 如何在 C++ 中使用提升属性树从 JSON 文件中读取对象数组