一个有意思的C++ trick

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

今天看symbian的文件,看到一个类似下面的trick:

class T

{

public:

T( int i)

{

....

}

void Set(int i)

{

//简单的调用T(int i)构造函数里面的语句即可

//但是不能这样写:

//T(i); //错误,编译器解释成 T i();

//而应该这样。利用new placement

new (this)T(i);

}

};

Set调用构造函数不太容易,如果在构造函数中调用Set那就简单多了。

通过该种方式,也使得C++和Java一样可以在一个构造函数中调用其他的构造函数。例如:

T(int i)

{

new(this)T(i, 10);

}

T(int j, int d)

{

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航