多くのクラスには、代入演算子 (operator=) がデストラクタと同じコードであり、コピー コンストラクタのコードと非常によく似ています。
では、そのような方法で割り当てを実装することは良い考えですか?
Point& operator=(const Point& point)
{
if(&point != this)
{
//Call the destructor
this->~Point();
//Make the placement new
//Assignment is made because some compilers optimise such code as just
// new Point;
Point* p_n = new (this) Point(point);
//We where placing in this place so pointers should be equal
assert(p_n == this);
}
return *this;
}