3

std::ostream からパブリックに継承する MyOStream を定義したいと考えています。独自の ofstream を実装したいとしましょう。

これはどのように行うことができますか?ヘルプ、コード化された例、または関連するリンクがあれば幸いです...

ありがとう!

4

1 に答える 1

3

ここで何を達成しようとしているのか正確にはわかりません。ストリームは一般化されたロケール固有の変換/「文字列化」機能を提供することを目的としているため、ユーザー コードはストリーム自体から継承しないでください。ostream新しいバッファ ロケーション (つまり gzip ストリーム) に書き込むことができるを使用しようとしている場合は、通常、basic_streambuf代わりに から継承する必要があります。これにより、既存の iostream 変換機能を使用できますが、input/ をリダイレクトできます。出力。

iostream 自体がどのように動作するかを詳しく知りたい場合は、このテーマについて私が聞いた中で最高の本は、Angelika Langer と Klaus Kreft によるStandard C++ IOStreams and Localesです。まだコピーを入手していないため (私のリストの次の本です)、本を保証することはできませんが StackOverflow でいくつかの推奨事項を見つけることができます。

また、iostream システムの動作をカスタマイズしたい人のためにいくつかのヘルパーを提供するboost::iostreamsをのぞいてみるのもよいでしょう。

于 2010-12-19T09:52:09.773 に答える