C++相談室2

このエントリーをはてなブックマークに追加
498おでん屋
>>496,497氏
レスありがとうございます。

ほんと構造が変です。こんな変な構造になったのは...
基底クラスのデストラクタでファイルの後始末処理をしているのですが
基底のデストラクタでは派生クラスの仮想関数はすでに使えないので
(ファイルの操作はこれに頼っているので、困ってしまいます)
派生クラスで書かないといけないですよね?
でも、この派生クラスをさらに派生すると...?

延々と続く問題になってしまいまして、それを解決しようとしたのが
クラスAで、派生クラスの後始末側にAの仮想関数を呼び出すようにして
Aの仮想関数で後始末をできるようにしました。

CのAはCを面倒みて、BのAはBを面倒みるような形にすると
こんな問題がでてしまいました。
さらに、呼び出すにもCのAなのか、BのAなのか明確にしないと
いけないです。さらにまずいです。

まったくもって勉強不足を痛感しております。
このような問題はどう解決したらいいのでしょうか...。