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

struct构造函数有关问题

2012-02-28 
struct构造函数问题#include iostream.hstruct cls{int m_icls(int i):m_i(i){coutint param cls.

struct构造函数问题
#include <iostream.h>

struct cls
{
int m_i;
cls(int i):m_i(i){cout<<"int param cls."<<endl;}
cls()
{
cout<<"no param cls."<<endl;
cls(0);
}
};

void main()
{
cls obj;
cout<<obj.m_i<<endl;
}
为什么不是输出0,而是输出一个很大的负数?

[解决办法]
参考此文:
http://blog.vckbase.com/panic/archive/2005/06/09/6304.aspx
构造函数调用构造函数
[解决办法]
也就是说obj.m_i输出前,cls(0)已经被析构了,输出为以随机数.
[解决办法]
cls(0);
其实是创建一个零时对象不是调用函数

热点排行