## 17.1 新しいストリーム型の派生

標準入出力ストリームからストリーム型を派生させる方法は、データメンバー や関数を追加したり、ストリームの入出力演算を変更する場合に適した方法です。

第 15 章では、`xalloc()`、`iword()`、`pword()` によって、追加データをストリームオブジェクトを追加できることを説明しました。ただし、この解法は追加データまでのポインタしか保存できず、実際のメモリーについては他の誰かが管理する必要がありました。

しかし、追加データをデータメンバーとして格納する新しいストリーム型を派生することで、この問題を解決することができます。15.3 節で説明した`date` 挿入子と `setfmt` マニピュレータの例をもう一度考えます。ここでは、対応するメンバー関数と、書式設定文字列を保存するための追加データメンバーを合わせ持った新しいストリームを派生させて、日付の書式を設定します。26今回の例でも、`date` オブジェクトの挿入子だけを取り上げ、抽出子は省略します。前回と同様に、出力ストリームを挿入する代わりに、 `odatstream` という新しい型のストリームを使用します。

>     date today;
>     odatstream ostr(cout);
>     //
>     ostr << setfmt("%D") << today;

次の節では、この派生ストリーム型の実装方法について説明します。

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。

OEM リリース, 1998 年 6 月