示例如下:
class MyClass
{
public:
MyClass(int a) : _a(a) {
}
MyClass(const MyClass& rhs){
new(this)MyClass(rhs._a); // placement new
}
MyClass & operator = (const MyClass& rhs){
this->~MyClass();
new(this)MyClass(rhs._a); // placement new
}
~MyClass(){}
int _a;
};
vc下,下面调用方式也可以,不过不能再gcc中编译。
class MyClassA
{
public:
MyClassA()
{
this->MyClassA::MyClassA(8);
}
MyClassA(int i)
{
m_i = i;
}
void Fun(int i)
{
this->MyClassA::MyClassA(i);
}
int m_i;
};