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

关于一个结构体的构造函数的有关问题

2012-03-05 
关于一个结构体的构造函数的问题structCLS{intm_iCLS(inti):m_i(i){}CLS(){CLS(0)}}voidmain(){CLSobj

关于一个结构体的构造函数的问题
struct   CLS
{
int   m_i;
CLS(   int   i   )   :   m_i(i)
        {
        }
CLS()
{
CLS(0);
}
};
void   main()
{
CLS   obj;
cout   < <   obj.m_i   < <   endl;
system( "pause ")   ;
}

[解决办法]
结构体的构造函数?!
[解决办法]
CLS obj(0);
[解决办法]
首先明确一点:直接调用构造函数,只有一个作用,就是在栈上构造一个临时对象。

CLS()
{
CLS(0);
}
};

这段代码里面看似引用的是CLS(0),
实际上是在 栈里面创建了一个CLS对象并对这个对象调用CLS(0),
因此实际上不会对obj这个对象的属性做出任何修改。
在这个构造函数结束的时候,栈里面的临时对象就被释放了。

参考 http://blog.vckbase.com/panic/archive/2005/06/09/6304.aspx

热点排行