读书人

简单的怪题#183;#183;#183

发布时间: 2012-11-11 10:07:57 作者: rapoo

简单的怪题,求助···
struct CLS
{
int m_i;
CLS( int i ) : m_i(i) {
}
CLS(){
CLS(0);
}
};
int main()
{
CLS obj;
cout << obj.m_i << endl;
}
结构为1 出乎了我的意料,竟然是1,为什么会是这样?不理解···

[解决办法]
我试了一下:结果输出一个 非常大的负数。意味着m_i没有初始化。

我的推测:CLS(0)这句话有问题。因为构造函数不是函数,所以我们显示的调用是无效的,被忽略了。
[解决办法]

探讨
m_i没有初始化。

[解决办法]
一个未初始化的值、、、结构体,无法初始化构造函数!!
[解决办法]
结构体的构造函数没有初始化列表这种机制。
你改为class,分别断点试一下就吧。。。
用struct是, 调用CLS( int i ) : m_i(i) 并没有实现附值。
[解决办法]
应该是随机值吧!

读书人网 >C++

热点推荐