私は次のファイルを持っています(タイプミスを許してください、コードをメモリからすばやく書き直します)
BaseReader(){
openFile();
}
void BaseReader::openFile(){
//logic to open file
}
開いているファイルは、.h で仮想パブリック メソッドとして宣言されています (保護されていましたが、何が問題なのかを把握しようとしてパブリックに切り替えました)。SortReader は次のように定義されます。
class SortReader: public BaseReader{
public:
SortReader();
void openFile();
};
次のコードを使用します。
SortReader::SortReader(): BaseReader(){}
SortReader::openFile(){
sortFile();
BaseReader::openFile();
}
SortReader オブジェクトを作成しようとすると、sortFile メソッドが呼び出されません。デバッガーでそれをウォークスルーし、SortReader が BaseReader コンストラクターを呼び出すのを見ることができます BaseReader コンストラクターは、openFile の BaseReader バージョンを呼び出す openFile を呼び出します。SortReader の開いているファイルの実装を呼び出したい。そのためには何をする必要がありますか?