>>549
> 541の例で言うと、Fileクラスを派生させてオーバーライドする形式が一番好ましいかと。
わけがわからん。

class DerrivedFile {
public:
void Open() { open(); }
void Wite() { write(); }
void Close() { close(); }
}
を作れってこと?
これでも状況は全く同様で、
class Data {
  public: void SaveToFile() {
   open();
   write();
   close();
  };
  private:
   void open(){ m_pfile->Open(); }
   void write(){ m_pfile->Write(); }
   void close(){ m_pfile->Close(); }
   DerrivedFile* m_pconfigfile;
 };
になるだけなんですが。で、今度は何を派生させますか?