0
C++で新しいタイプのfilestream
を定義したいとします。私は何から継承すべきですか?新しいfstreamを作成するときに継承するものは何ですか?
C++で新しいタイプのfilestream
を定義したいとします。私は何から継承すべきですか?新しいfstreamを作成するときに継承するものは何ですか?
basic_filebuf
、またはbasic_streambuf
から継承します.I/Oパーツを最初から書き込んでいる場合は、basic_streambuf
です。 basic_[i/o]fstream
から派生したクラスも必要ですが、それは便宜上厳密にオプションです。テンプレート化が不要な場合は、basic_
をドロップし、テンプレートではなくクラスから継承します。
*stream
クラスはすべて、rdbuf()
メソッドを使用して取得および設定できるポリモフィックポインタを使用してI/Oを送出します。だから、/あなたがコンビニエンスクラスを実装するまで、std::iostream
をインスタンス化し、ポインタでrdbuf
を呼び出すことによってテストすることができます。
派生クラスの要件を満たすために、標準のコピーを用意すると便利です。主な機能は仮想関数overflow
とunderflow
になります。