Cpp New演算子 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(new演算子)
(new演算子)
46行: 46行:
 
もちろんコンストラクタが準備されていなければ、対応した引数を付与しない限りnew演算子による動的な変数の生成処理は失敗します。具体的には個々のクラスや型名の生成方法・コンストラクタに関する仕様書や説明書を参照して下さい。
 
もちろんコンストラクタが準備されていなければ、対応した引数を付与しない限りnew演算子による動的な変数の生成処理は失敗します。具体的には個々のクラスや型名の生成方法・コンストラクタに関する仕様書や説明書を参照して下さい。
  
new演算子は、演算子ですから、演算子のオーバロードをすることができます。
+
 
 +
new演算子は、演算子ですから、演算子のオーバロードをすることができます。以下のような関数に独自の機能を追加していけばよいです。但し、オーバロードした関数内ではC++の関数を使うとC++関数の中でnewが再び呼び出される可能性があるため、C++関数を使わないような工夫が必要です。C++関数を利用すると無限スタックが発生し、new演算子の呼び出しでプログラムが暴走します。
 +
<syntaxhighlight lang="cpp">
 +
void* operator new(size_t sizeNew) {
 +
  return malloc(sizeNew);
 +
}
 +
void operator delete(void* pDelete) {
 +
    free(pDelete);
 +
}
 +
</syntaxhighlight>

2014年11月7日 (金) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス