では、今までの復習としてVectorクラスを作ってみることにします。Vectorクラスは
配列のことをいいます。Stackクラスのようにコンストラクタの
引数として配列の大きさをもらい、コンストラクタの中で配列をnewします。operator[]を
作成し、これを用いて、代入や取得をできるようにします。そしてデストラクタでは
newしたものをdeleteします。ただし、配列はテンプレートクラスにします。
復習ですので、4章の前半の部分の知識で作成できるはずです。
特に代入演算子、コピーコンストラクタ
を忘れずに実装してください。
次に、Vectorクラスを包含して、RingBufferクラスを作ります。例えばバッファー数
が10のリングバッファーでは、データを追加していきますが、最新の10個分のデータだけを格納し、
それよりも古いデータは、順次削除します。このようなバッファー構造をリングバッファーといいます。
RingBufferクラスのコンストラクタはバッファーの数を引数に取ります。そしてその数で
Vectorクラスを初期化します。add関数はデータを追加します。get関数は、引数にint型をとり、
リングバッファー内の古いものから数えて、n番目のデータを返します。
さらにこのRingBufferクラスを用いて、UNIXのTAILコマンドのようなプログラムを作ります。
このプログラムは、ファイル名を引数にとって実行すると、ファイルの最後の10行だけを
表示するプログラムです。