• ベストアンサー

メソッドの定義のoperatorと*operatorについて

struct dBase { void *operator new(size_t size size) { return dAlloc(size);} void operator delete (void *ptr, size_t size){ dFree (ptr,size);} void *operator new[] (size_t size) { return dAlloc (size);} void operator delete[] (void *ptr, size_t size){ dFree (ptr, size);} }; 上記のプログラムは、ヘッダファイルの一部です。上記のoperatorと*operatorは、どのような意味があるのでしょうか?教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

operatorが何かわからないのですよね。 C++では関数だけでなく演算子もオーバーロード(多重定義)が出来ます。 operatorはそのためのキーワードです。 iostreamの >> や << で入出力できるのも演算子のオーバーロードができるからです。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • ddnp009
  • ベストアンサー率25% (15/58)
回答No.5

>void *operator new(size_t size size) { return dAlloc(size);} ↑の *operator、先頭の'*'は、その左、void にくっついて作用する。 こんなふうに。 void* operator new( ...  (voidへのポインタを返す、operator-new) >void operator delete (void *ptr, size_t size){ dFree (ptr,size);} これはいわずもがな。 "operator" は特別なキーワード。"*operator"なんて無い(はず

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

#2 の補足: 細かいですが, dBase の派生クラスでも使うかもしれないです. まあ, struct の派生クラスを作るかどうかは知りませんが.

すると、全ての回答が全文表示されます。
回答No.2

ANo.1> placement new / placement delete ウソ。 struct dBase 専用の new / delete 定義です。 dBaseをnew/deleteするとき、これらが動きます。

すると、全ての回答が全文表示されます。
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>上記のoperatorと*operatorは、どのような意味があるのでしょうか? placement new / placement delete

すると、全ての回答が全文表示されます。

関連するQ&A