构造函数 初始化器列表的问题 高手救命!!!
class A
{
char a[20];
public:
A(char *ch);
}
A::A(char *ch):a(ch) // 这里是错误的 不能初始化 a[20]
{}
为什么 初始化不了数组啊
明明 可以 在常规初始化数组中 , 这样: char a[20]="2323" 是可以的
2。
还有使用初始化列表 并不能保证 类中所有成员 都在编译阶段 就创建完毕
例如:
class A
{ int a;
public:
A(int _a){a=_a} //这里没使用初始化列表 创建A对象 先在编译阶段 分配空间 然后在程序执行阶
//段才 给 a 赋值 然后才算 创建对象完毕
class B:public A
{
int b;
public
B(int _a,int _b):A(_a),b(_b) //使用了初始化列表但是 A(_a) 中的 a=_a; 是执行阶段的语句
{}
};
实在搞不懂 初始化器 到底是怎么工作的 望高手指点