// ノートクラス. class Notebook { protected: string* note; // ノートの本文. int pages; // ノートの総ページ数. public: // ノートクラスのコンストラクタ. Notebook() { pages = 0; note = NULL; } Notebook(int pp) { note = new string[pages=pp]; } // ノートクラスのコピーコンストラクタ. Notebook(const Notebook&); // ノートクラスのデストラクタ 用意したノートを削除. virtual ~Notebook() { delete [] note; } // ノートを読む 指定がなければ最初のページ(1ページ目)を読む. virtual string Read(int p = 1) const; // ノートに書く 指定がなければ最初のページ(1ページ目)に書く. virtual void Write(string, int p = 1); }; // ノートクラスのコピーコンストラクタ. Notebook::Notebook(const Notebook& nb) { if (nb.pages > 0) { // ページが存在するとき. note = new string[pages=nb.pages]; // 初期化するページ分だけnew // ページをコピー. for (int i = 0; i < pages; i++) note[i] = nb.note[i]; } else { // ページ数が0のとき. pages = 0; note = NULL; } }