作者: Koichi Yamamoto
日時: 2002/3/31(23:39)
こんにちは、山本です。

"kikwai@... (機械伯爵)"さんは書きました:
>  あらゆる文脈で、派生クラスは基底クラスとして使える、と、ちゃんと
> 書いてあります。
> 
>  いや、その後に参照やポインタのことが書いてあったもんで、どうも読
> み間違えたみたいです。
> 
>  どーも、申し訳ありません。

いえいえ、私自身よく曲解していることがありますので、
今回もそうなのかなと心配になって確認してみました。
ですから、「ああよかった」と思っていたりします(^^;

>  それはとまれ、関数なんかに基底クラスとして呼ばれると、その時点でキャスト
> されたことになり、たとえばオーバーロードされたメソッドはご破算になる・・・
> というのは間違い無いですよね?
> 
> ※virtualメソッドでない限り・・・

そうですね。「プログラミング言語C++(第2版)」のr.10.2に、
virtualなメソッドは呼び出し元のオブジェクトの型に依存し、
virtualでないメソッドは呼び出し元のオブジェクトを指している
ポインタやリファレンスの型に依存する、と説明されています。
# ここは重要なので付箋紙でマークしてあります(^^)

>  んでも、勘違いしたまんまより、墓穴掘って恥かいて学習したほうが良い
> ですね。

私もそう思います。私自身よく誤って理解していることがあります(^^;が、
誤ったままにしておくくらいなら、一時の恥をかいてでも
人に指摘してもらうほうがいいです。自分自身のためになりますから。

--
Koichi Yamamoto, 
http://www3.ocn.ne.jp/~yamako/