BohYoh.comトップページへ
C & C++ FAQ
目次

C++ 割付け関数とは何ですか。

 割付け関数(allocation function)は、動的記憶域期間をもつ記憶域を確保するための関数です。
 クラスに対する割付関数は、たとえ宣言しなくても静的メンバとなります。

class Arena; struct B { void* operator new(size_t, Arena*); }; struct D1 : B { }; Arena* ap; void foo(int i) { new (ap) D1; // B::operator new(size_t, Arena*)を呼び出す。 new D1[i]; // ::operator new[](size_t)を呼び出す。 new D1; // 駄目! ::operator new(size_t)が隠ぺいされている。 }


■ 根拠 ■
標準C++ 1st §3.7.3.1 Allocation functions
§12.5 Free store
標準C++ 2nd §3.7.3.1 Allocation functions
§12.5 Free store

戻る

BohYoh.comロゴ