读书人

构造函数调用构造函数行吗?该如何处理

发布时间: 2012-04-23 13:17:38 作者: rapoo

构造函数调用构造函数行吗??
struct TT
{
TT(int i):mi(i){}
TT()
{
TT(0);
}
int mi;
};

int main()
{
TT t;
return 0;
}
请问为什么t的值不是0呢??

[解决办法]
标准语法不支持。如果你一定想这么做的话,用placement new。
[解决办法]
这样相对于构造了一个临时对象吧
[解决办法]
TT(0);
你这里只是构造了一个临时对象,和你this对象完全没任何联系
[解决办法]
试试
T()
: new(this) T(0)
{
}
[解决办法]
这样呢?
TT()
{
*this = TT(0);
}
[解决办法]
说说你这么做的目的吧
[解决办法]
Sorry,应该是这样:

A() { new(this) A(0); }
[解决办法]
从来就不提倡用placement new

读书人网 >C++

热点推荐