• ベストアンサー

構造体の定義にメソッドがあります

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);} }; プログラムを読んでいたところ、ヘッダファイルの中に上記のようなコードがありました。どうして、構造体の定義にメソッドが書かれているのでしょうか?教えてください。

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

  • ベストアンサー
  • Interest
  • ベストアンサー率31% (207/659)
回答No.2

C++では構造体がメンバ関数をもてることについて http://okwave.jp/qa2824114.html これで納得してもらえましたか?

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

定義されているメンバ関数の内容からすると、単に構造体のメモリ管理方法だけをカスタマイズしたかっただけのように思います。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>どうして、構造体の定義にメソッドが書かれているのでしょうか? C++ では構造体にもメソッドを定義できることはご存じなのですよね。 言語仕様上、構造体とクラスとの違いはそのデフォルトのアクセスレベルのみだったと思うので、class dBase {}; としなかった理由は作者に聞いて下さい。

関連するQ&A