首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简单的怪题,···

2012-11-11 
简单的怪题,求助struct CLS{int m_iCLS( int i ) : m_i(i) {}CLS(){CLS(0)}}int main(){CLS objcout

简单的怪题,求助···
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) 并没有实现附值。
[解决办法]
应该是随机值吧!

热点排行