默认构造函数嵌套带参构造函数

struct CLS{
    int m_i;
    CLS(int i):m_i(i){}
    CLS(){CLS(0)}
}
CLS obj;
cout << obj.m_i << endl;

结果并不是0,因为在默认构造函数内部再调用带参数的构造函数是用户行为而非编译器行为,只执行函数调用,不会执行初始表达式。

原文地址:https://www.cnblogs.com/yingl/p/5825968.html