virtualについて – プログラミング – Home

通知
すべてクリア

[解決済] virtualについて


ごみ
 ごみ
(@ごみ)
ゲスト
結合: 23年前
投稿: 20
Topic starter  

「オーバライド」とは基本クラスのクラスのメソッドを派生させたクラスのメソッドで置き換えることと理解しています。そして「オーバライド」を実現するために、「仮想関数」としてクラス定義する必要があるということで、これまではvirtualをつけて定義していました。

けれど、いろいろな書物をよんでいるうちにvirtualを付けずに「オーバライド」を実現している場合もあるようです。

このvirtualは必ずしも付けなくて良いのでしょうか?
もともとvirtualを付ける本当の意味が分からなくなってしまったので質問しました。ご存知の方、よろしくお願いします


引用未解決
トピックタグ
aki
 aki
(@aki)
ゲスト
結合: 23年前
投稿: 19
 

virtualをつけるのは派生クラスのポインタを、
基底クラスのポインタにアップキャストして使う場合です。

このポインタからある関数を呼んだ場合、
virtualがあると派生クラスの関数が呼ばれますが、
virtualが無いと基底クラスの関数が呼ばれます。


返信引用
ごみ
 ごみ
(@ごみ)
ゲスト
結合: 23年前
投稿: 20
Topic starter  

akiさん、レスありがとうございます。

なるほど、今まで派生クラスの関数を呼ぶのが「オーバライド」であると思っていました。勉強になりました。

”「オーバライド」とは基本クラスのクラスのメソッドを派生させたクラスのメソッドで置き換えること”
という自分の解釈はまちがっていたのでしょうか?

もともと、ある参考書に上のように記述してあったのですが・・・


返信引用
aki
 aki
(@aki)
ゲスト
結合: 23年前
投稿: 19
 

> ”「オーバライド」とは基本クラスのクラスのメソッドを派生させたクラスのメソッドで置き換えること”
> という自分の解釈はまちがっていたのでしょうか?

まちがってないと思いますよ。


返信引用
ごみ
 ごみ
(@ごみ)
ゲスト
結合: 23年前
投稿: 20
Topic starter  

akiさん、度々ありがとうございます。
自分でも調べてみました。トンチンカンなことを聞いてすみませんでした。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました