类对象数组怎么初始化?
#include <iostream>
using namespace std;
class AA
{
public:
int num;
};
class BB
{
public:
BB(int b):num(b){}
int num;
};
int main()
{
AA a[10]={{1},{2}};
cout < <a[0].num < <endl;
cout < <a[1].num < <endl;
cout < <a[2].num < <endl;
BB b[2]={{1},{2}}; // 怎么初始化?
return 0;
}
[解决办法]
BB b[2]={BB(1),BB(2)};
[解决办法]
AA a[10];//就这样,它会自动调用无参构造函数
BB b[2];//错误,因为没有无参构造函数
[解决办法]
类数组的使用构造函数,提供缺省构造函数的A sz[3];
未提供缺省构造函数的显式使用构造函数
A sz[3] = { A(...), A(...), A(...)};
[解决办法]
如果没有无参构造函数,最好还是使用类指针数组来表示
#include <iostream>
using namespace std;
class AA
{
public:
int num;
};
class BB
{
public:
BB(int b):num(b){}
int num;
};
int main()
{
AA a[10]={{1},{2}};
cout < <a[0].num < <endl;
cout < <a[1].num < <endl;
cout < <a[2].num < <endl;
BB *b[2];
for (int i=0;i <2) b[i]=new BB(i+1); // 怎么初始化?
return 0;
}