// 追加(Add) と印刷(Print) そして逆順への // 並び替え (Reverse) の機能をもったコンテナ #ifndef _INCLUDE_LIST_H_ #define _INCLUDE_LIST_H_ //とりあえず、Printという純粋仮想関数を持った Elem という抽象クラスを定義しておいて class Elem { public: virtual ~Elem(){} // 8-1 virtual void Print() = 0; }; //このElemを格納する Listクラスを書く //何が格納されて、どのように印刷されるかなんて知らない class List { public: List(int _max); //コンストラクタ 引数で配列の最大値を設定 ~List(); void Add(Elem* p); //要素の追加 void Print(); //要素の印刷 void Reverse(); //要素の並びを反転 protected: //メンバ変数 Elem** elemArray; //要素を格納するポインタの配列 int maxNum; //配列のサイズ int num; //格納済みの要素数 // Listクラス内のみで使用するスタティック関数 static void Swap(Elem* &l, Elem* &r); //要素のポインタのスワップ }; #endif