C++ 使用构造函数初始化成员数组
我有一个这样的班级C++ 使用构造函数初始化成员数组,c++,arrays,object,constructor,initialization,C++,Arrays,Object,Constructor,Initialization,我有一个这样的班级Space是一个抽象类,不要介意 班级学校:公共空间 { 私人: 学校操场; 楼梯和楼梯; 楼层[3]; int capa; 公众: 学校(int x):楼层[1](x)、楼层[2](x)、楼层[3](x){ cout应为: school(int x) : floors{x, x, x} { std::cout << "a school has been created" << std::endl; } school(int
Space
是一个抽象类,不要介意
班级学校:公共空间
{
私人:
学校操场;
楼梯和楼梯;
楼层[3];
int capa;
公众:
学校(int x):楼层[1](x)、楼层[2](x)、楼层[3](x){
cout应为:
school(int x) : floors{x, x, x}
{
std::cout << "a school has been created" << std::endl;
}
school(intx):楼层{x,x,x}
{
首先,数组是基于0的,因此有效索引是0-2,而不是1-3
其次,您不能像试图初始化构造函数中的单个数组成员那样初始化它们
如果floor
没有,您可以更改floor[]
数组以保留floor*
指针,然后使用构造函数的主体构造每个floor
对象,例如:
班级学校:公共空间
{
私人:
...
楼层*楼层[3];
...
公众:
学校(int x){
对于(int i=0;i<3;++i){
楼层[i]=新楼层(x);
}
//根据需要进行其他初始化。。。
无法修复,但包含3个元素的数组中的有效索引是0
、1
和2
。您所说的类中的对象数组是什么意思?您是指类的实例数组吗?