我的类A
有一个B类对象数组作为成员,要求是在类AI的构造函数中需要将this
传递给数组中的每个B
对象。但是,尝试在A
的构造函数体中循环它们并不起作用:
for (i=0;i<max(B_obj);i++) {
B_obj[i](this);
}
struct A : EventHandler {
A() : B_obj_1(this) {}
B B_obj_1;
};
struct A : EventHandler {
A() : {
for (auto i = 0; i<4; i++) {
B_obj[i](this);
}
}
B B_obj[5];
};
答案 0 :(得分:1)
如果B(A*)
的唯一构造函数是A() : b_obj{{this}, {this}, {this}, {this}, {this}} {}
(没有无参数的),那么你必须使用成员列表初始化:
std::vector
这会变得很乱,所以更好的解决方案是使用purrr
或创建无参数构造函数,然后稍后复制初始化它们。