株式会社エス・スリー・フォー

6.6 まとめ

この章では、ストリームのバイトの最終的な出力先がメモリかディスクかを考えることなく、オブジェクトをどのようにストリームに格納し、読み出すかについて述べました。また、ストリームの最終形式が ASCII かバイナリかを考慮する必要もありません。

また、RWpostream および Rwpistream のように、独自の特殊仮想ストリームクラスを書くこともできます。仮想ストリームの大きな利点は、独自の特殊仮想ストリームを書く場合に、クライアントクラスのコードをまったく変更する必要がないことです。つまり、単にストリームクラスを引数として使用するだけです。

RWvostream& operator<<(RWvostream&, const ClassName&);
RWvistream& operator>>(RWvistream&,       ClassName&);

オブジェクトを仮想ストリームに格納し読み出すほかに、すべてのクラス自体をバイナリで RWFile に格納し読み出すことができます。このファイルは、ANSI-C スタイルのファイル I/O をカプセル化します。ストリーム I/O に比べその機能に、より多くの制限がありますが、仮想関数のディスパッチを必要としないため、この形式でディスクへ格納し読み出す方がやや速くなります。