p314〜p345まで

今回はクラスの基本的な機能の解説。

継承

アクセス指定子をprivateにすれば基底クラスではpublicだったメンバも
派生クラスにおいてはすべてprivateになる。
また、アクセス指定子を省略するとprivateになる。
p321:下段

基本的にprivate継承、protected継承はしたことないのでメモ。ちなみにこの時点ではprotectedはまだ出てきておらず。省略は知らなかったなぁ。

アップキャスト

どうにもアップキャスト、ダウンキャストがごっちゃ混ぜになる。が、この説明はわかりやすかった。

継承木の上のほうにあるクラスへのキャストがアップキャスト。
ちなみに継承木の説明はp323にあり。
p330:中段

あと、派生クラスから基底クラスへは暗黙のキャストが可能。認識が甘いのでメモ。普段は適当につかってるからなぁ・・・。

オーバーライド

基底クラスにある関数の定義を派生クラスで変更することが可能。
p335:上段

そういやそうだったね的なメモ。オーバーライドするときはたいてい仮想関数にしてるんで、別にvirtualつけなくてもできることすっかり忘れてた。まぁこの本でも仮想関数使わないオーバーライドはほとんどないと思うって書いてあるけど。

今日はこんなところかなー。結構最近はライブラリ周りとかイジイジしてるんでポリモルフィズムの基本的な部分は結構理解してるつもり。まぁ次からはもうちっとそこらへんの細かいところに突っ込んでいくみたいだから、取りこぼしがないように気をつけよう。