通知            
            
                すべてクリア
            
        
	                                     Topic starter
                    2006年5月16日 12:26 PM  
		                                	            
	            VC6のMFCで質問です。OSはXP。
CFileの派生クラスCMyFileを作ったとします。
CMyFileではOpenをオーバーライドしてます。
CMyFile fp;
CFile *pF = &fp;
CMyFile &fp2 = (CMyFile &)*pF;
このようなことはありですか?
エラーは出ませんが不安ではあります。
	                                     Topic starter
                    2006年5月16日 12:28 PM  
		                                	            
	            すいません。補足です。
CMyFile &fp2 = (CMyFile &)*pF;
の後に
fp2.Open(...);//これがちゃんとCMyFileのOpenなのでしょうか?
デバッグ上はCMyFileのソースを通っているようですが...
	                                                        2006年5月16日 12:57 PM  
		                                	            
	            A1.問題ありません。
A2.CMyFile::Open になります。
ですが、プログラムとしてあまりにも不細工すぎると思います。
そんな変なことしないですむよう修正することを強く推奨します。
そこら辺、真っ先にリファクタリングの対象となる気がします。
	                                     Topic starter
                    2006年5月16日 1:13 PM  
		                                	            
	            レスありがとうございます。
基本クラスから派生クラスに戻すいい方法が思い浮かびませんが
とりあえず問題ないならこのままいきたいと思います。
	                                                        2006年5月16日 1:27 PM  
		                                	            
	            安全なdown-castなら dynamic_cast

 
  
  
  
  