C++里如果将数组定义成类中的成员,将面临初始化的问题.
如下:
Class A
{
public:
A();
~A(){};
int abc[3];
}
很直观的想法是
A::A()
: abc({1,2,3})
{
}
很遗憾,你将见到编译提示语法错误
当然这里可以采用变通方法
A::A()
{
for( int nLoop=1;nLoop<=3;nLoop++)
abc[nLoop]=nLoop;
}
但假如需要初始化的是没有默认构造的对象数组又如何呢?
例如
class B
{
public:
B(int a);
~B(){};
int m_nB;
}
B::B(int a)
: m_nB(a)
{
}
Class A
{
public:
A();
~A(){};
B abc[3];
}
这时该如何初始化呢?
这里只能用变通的方法解决.
Class A
{
public:
A();
~A(){};
B *abc[3];
}
A::A()
{
abc[0] = new B(1);
abc[1] = new B(2);
abc[2] = new B(3);
}
当然也许是我太孤陋寡闻了,
如果大家谁知道成员数组的初始化语法,恳请告知哦.