您的位置:首页 > 编程语言 > C语言/C++

C++数组成员的初始化

2009-10-14 10:11 239 查看
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);
}

当然也许是我太孤陋寡闻了,如果大家谁知道成员数组的初始化语法,恳请告知哦.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: