参照のキャスト?は問題ありますか? – プログラミング – Home

参照のキャスト?は問題ありますか?
 
通知
すべてクリア

[解決済] 参照のキャスト?は問題ありますか?


木作
 木作
(@木作)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

VC6のMFCで質問です。OSはXP。
CFileの派生クラスCMyFileを作ったとします。
CMyFileではOpenをオーバーライドしてます。
CMyFile fp;
CFile *pF = &fp;
CMyFile &fp2 = (CMyFile &)*pF;
このようなことはありですか?
エラーは出ませんが不安ではあります。


引用未解決
トピックタグ
木作
 木作
(@木作)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

すいません。補足です。
CMyFile &fp2 = (CMyFile &)*pF;
の後に
fp2.Open(...);//これがちゃんとCMyFileのOpenなのでしょうか?
デバッグ上はCMyFileのソースを通っているようですが...


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

A1.問題ありません。
A2.CMyFile::Open になります。

ですが、プログラムとしてあまりにも不細工すぎると思います。
そんな変なことしないですむよう修正することを強く推奨します。
そこら辺、真っ先にリファクタリングの対象となる気がします。


返信引用
木作
 木作
(@木作)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

レスありがとうございます。
基本クラスから派生クラスに戻すいい方法が思い浮かびませんが
とりあえず問題ないならこのままいきたいと思います。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

安全なdown-castなら dynamic_cast


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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