#99 Article 867 Posted at 1994/07/13 10:01:14 by W.M. (MAP009) [CPP]
Subject: Re: Re: Re: C++ちょっとした疑問 /860 /858 /857
継承時に親クラスを publicで継承するのが普通ですが、なぜ publicが
デフォルトでないのかについては ARMに書いてあったと思います。private
にするのが普通というわけではありません(ち さんが書いてますように、
classはデフォルトが private、という直交性の意味もありますが)。
(ARM -> Annotated Reference Manual of C++ です)
> あと、C(++)は、関数内部で関数が宣言できないのが、ちょっと嫌ですね(^_^;)
> ある関数の中でだけ使われてるけど、そこでは何度も同じ処理をしてる・・・ってな
> 時には、よく使ってたので。
う~ん、このあたりの考え方が Pascalと C++の違いでしょうね。Pascal
では、ある関数がどこに書かれているかが重要ですが、C++では、関数はデ
ータの付属物で、その本体はリンクされていればどこにあってもよし、です
から。
上記の Maiさんのケースにて C++的に考えると、「このデータを処理する
関数内だけで使用する関数だから、そのデータのクラスの private member
関数にする」ということになるのでしょう。C++では、どのデータについて
の関数であるかが重要で、どの関数から呼ばれるかはあまり意味がありませ
んから。
(その関数内で localな classを作り、その static member関数にする、
というテクニックも使えそうですが、不自然ですよね)
もはや頭の中が C++ 一色の
MAP009 / W.M. (ダブレムと発音してください)