ふじ@メガネボーイズのメモのような日記 RSSフィード

2008-09-26

privateとprotectedの使い分け

※これは自分の考え方なので正しいかわかりません。(^^;

これまでの考え方

  • 基本はprotected
  • 派生クラスで使うことを意図的に禁止するものはprivate

最近の考え方

  • 利用する言語の思想に合わせる
C++

C++は、仮想関数として指定した関数のみ動的結合され、継承によるポリモフィズムが利用できる。

このような作りであることから、指定したもののみ継承を許可する思想だと考えられる。

この思想に合わせ、基本はprivateにした方がよいと思う。

  • 基本はprivate
  • 派生クラスで使うことを意図的に許可するものはprotected
Java

Javaは、finalを指定したクラスのみ継承が禁止される。

このような作りであることから、指定したもの以外は継承を許可する思想だとわかる。

この思想に合わせ、基本はprotectedにした方がよいと思う。

  • 基本はprotected
  • 派生クラスで使うことを意図的に禁止するものはprivate

skelton_boyskelton_boy 2008/09/27 01:00 こういうのってEffective C++とかに書いてないのかな?

fuji_tttfuji_ttt 2008/09/27 19:48 デストラクタがvirtualでないクラスは一般的に継承してはいけないとかってのは書いてあるみたいだけど、この日記に関連する内容が書いてあるかは不明です。C++を使う人は読むべき1冊だと言われているので、そのうち読みたいなぁ。。。

ゲスト



トラックバック - http://meganeboy.g.hatena.ne.jp/fuji_ttt/20080926