C++学习之——类成员变量默认初始化顺序

来源:岁月联盟 编辑:exp 时间:2012-05-30

测试代码:
[cpp]
#include <iostream> 
 
class A 

public: 
    A(int _V1, int _V2):V1(2),V2(3) 
    { 
        V1 = _V1;//BreakPoint1 
        V2 = _V2; 
    } 
    A() 
    { 
      //BreakPoint2 
    } 
private: 
    int V1; 
    int V2; 
}; 
 
 
class B 

public: 
    B():V1(2),V2(3),AValue(1,2) 
    { 
        V1 = V1;//BreakPoint3 
    } 
private: 
    A AValue; 
    A AValue_1; 
     
    int V1; 
    int V2; 
}; 
void main() 

   B BValue; 

程序运行顺序——

BreakPoint2
BreakPoint1
BreakPoint3
结果:类成员变量默认初始化顺序是按照定义次序来初始化的。
注意:如果 class A 中没有定义默认构造函数(A())将会出现找不到默认构造函数编译错误

 

 

摘自 DriverMonkey的专栏