キノコの自省録

日々適当クリエイト

【C++】virtualの説明

先日、新人君に、
「virtualってついているものがあるんですが、
 これなんですか?」
って聞かれた。
新人君は、Javaは使ったことはあるが、
オブジェクト指向は意識していなかったようで、
オブジェクト指向のキーワードをほとんど知らなかった。

virtualといえばオーバーライドである。
オーバーライド可能な仮想メソッドと、
不可能な非仮想メソッドとでは、振る舞いがどう変わるのかは、
継承の話をしないと通じない(一応、新人君は継承を知っていた)。
そして、基本クラスを介した操作を行うことのメリットがわからないと、
virtualの有効性がわからない。
上手なvirtualの使い方を説明すると、
完璧設計の世界に突入する。
うーん、オブジェクト指向って面倒くさい。
オブジェクト指向って、一つのキーワードを説明するのに、
あれこれと余計なこと言わなければ伝わらない。
敬遠されるわけだ。


2008/03/15追記

virtualなどの検索ワードでこのエントリを訪れる方が多いのですが、
ご覧の通り、説明が全くないのが申し訳なかったため、
説明ページを作りました。
virtualは、どう使えば有効なのかを中心にまとめています。
よろしければどうぞ。
virtualの説明コラムへ