输出是多少啊?解释一下

来源:百度知道 编辑:UC知道 时间:2024/05/26 04:46:49
#include<iostream.h>
struct CLS
{
int m_i;
CLS( int i ) : m_i(i) {}
CLS()
{
CLS(0);
}
};
int main()
{
CLS obj;
cout << obj.m_i << endl;
system("pause");
}

随机值.

CLS obj; // 定义CLS对象
调用:
CLS()
{
CLS(0);
}
构造函数中CLS(0)只是重新构造了一个新的临时对象,对上面定义的obj没有任何影响.
所以:
cout << obj.m_i << endl;
obj.m_i是一个没有初始化的值.....

197

0
构造函数嘛,如果你调用CLS(int i),这个时候内部数据就按i来赋值
但是你没有调用,所以在构造的时候就自动调用不带参数的构造函数
貌似是这样吧