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);
}
当然也许是我太孤陋寡闻了,如果大家谁知道成员数组的初始化语法,恳请告知哦.
如下:
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);
}
当然也许是我太孤陋寡闻了,如果大家谁知道成员数组的初始化语法,恳请告知哦.
相关文章推荐
- 【c++程序】在数组对象中初始化成员变量
- [C++] 如何初始化常量数组成员
- C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误
- C/C++数组初始化的一些误区
- C++语言类成员变量初始化总结
- 关于C++中用new申请动态数组的初始化的两种方式
- C++中默认构造函数中数据成员的初始化
- [笔试题 9][c/c++]关于成员变量,对象成员的初始化问题
- C++之类成员初始化
- C++成员初始化的顺序
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法 --转
- C++成员变量初始化
- C++ vector多维数组初始化及清零
- C++构造函数初始化成员列表
- C++特殊成员变量(静态、常量、引用)的初始化方法
- C++成员初始化列表
- C++中的static成员、static const成员和const成员的初始化
- ios开发答疑录系列---(三)C/C++ 数组的初始化
- Effective C++学习笔记:初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- C++主题——成员初始化列表