#include using namespace std; #include "list.h" // コンストラクタ List::List(int _max) : maxNum(_max), num(0) { // Elemクラスポインタの配列をアロケート elemArray = new Elem*[_max]; //Elemへのポインタを _max個確保 } // デストラクタ // 配列に格納された Elemクラスのポインタを解放した後に配列自体を解放 List::~List() { cout << "Listのデストラクタ" << endl; // 8-1 for (int i = 0;i < num;i++) delete elemArray[i]; delete[] elemArray; } // 要素の追加 void List::Add(Elem* p) { if (num >= maxNum) return; elemArray[num++] = p; } // 要素の印刷 void List::Print() { for (int i = 0;i < num;i++) elemArray[i]->Print(); } // 要素の並びを反転 void List::Reverse() { for (int i = 0;i < num / 2;i++) { Swap(elemArray[i], elemArray[num - i - 1]); } } void List::Swap(Elem* &l, Elem* &r) { Elem* tmp; tmp = l; l = r; r = tmp; }