一个有意思的C++ trick (2)

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

前篇文章确实在使用new placement的时候,在某些情况下有问题。

class B

{

public:

B()

{

printf("B:B()\n");

}

};

class T : public B

{

public:

T(int i, int k)

{

}

void Set(int i)

{

this->~T();

new (this) T(i); //错误一

}

T( int i)

{

new (this) T(i, 10); //错误二

}

};

错误一在前篇文章的回复中已经说明了。

至于错误二,我个人认为只有在有继承关系的时候才存在问题。

例如 T a(10),结果调用基类B的构造函数两次,显然有问题。如果T没有父类呢?

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