2007-11-08から1日間の記事一覧

仮想デストラクタの明示的な呼び出し

オブジェクトの解体の例で、こう書いたことに注意して欲しい: ◎デストラクタの仮想呼び出し object_->~T(); ×デストラクタの非仮想呼び出し object_->T::~T(); T* が指している先が T 型のオブジェクトである保証は当然無い((この例を出したところの記述では…

割当と構築、解体と解放

C++ では、割当*1 (allocation) と構築 (construction)、解体 (destruction) と解放 (deallocation) はそれぞれ全く異なる概念だ。コードで見ると、分かりやすい: /* 割当 */ void* const rawMemory_( ::operator new(sizeof(T)) ); /* 構築 */ T* const obj…