こんにちは、山本です。
"kikwai@... (機械伯爵)"さんは書きました:
> あらゆる文脈で、派生クラスは基底クラスとして使える、と、ちゃんと
> 書いてあります。
>
> いや、その後に参照やポインタのことが書いてあったもんで、どうも読
> み間違えたみたいです。
>
> どーも、申し訳ありません。
いえいえ、私自身よく曲解していることがありますので、
今回もそうなのかなと心配になって確認してみました。
ですから、「ああよかった」と思っていたりします(^^;
> それはとまれ、関数なんかに基底クラスとして呼ばれると、その時点でキャスト
> されたことになり、たとえばオーバーロードされたメソッドはご破算になる・・・
> というのは間違い無いですよね?
>
> ※virtualメソッドでない限り・・・
そうですね。「プログラミング言語C++(第2版)」のr.10.2に、
virtualなメソッドは呼び出し元のオブジェクトの型に依存し、
virtualでないメソッドは呼び出し元のオブジェクトを指している
ポインタやリファレンスの型に依存する、と説明されています。
# ここは重要なので付箋紙でマークしてあります(^^)
> んでも、勘違いしたまんまより、墓穴掘って恥かいて学習したほうが良い
> ですね。
私もそう思います。私自身よく誤って理解していることがあります(^^;が、
誤ったままにしておくくらいなら、一時の恥をかいてでも
人に指摘してもらうほうがいいです。自分自身のためになりますから。
--
Koichi Yamamoto,
http://www3.ocn.ne.jp/~yamako/