关于一个结构体的构造函数的问题
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