寺田さん、
平鍋です。
>以前このMLで話題に出した「エクストリーム・トレーニング」ですが,やっと
>「型」(練習メニュー)の第一弾を公開しました!
>なかなか忙しくて時間が取れなかったことと,予想通り(?)型の作成は困難で
>あったため,ずいぶんと時間がかかってしまいました.
>
> 私のページ(ここから辿れます)
> http://www.geocities.jp/u_1roh/
>
>お題:
> Stack クラスの作成
>
>言語:
> C++
>
>特徴:
> テーマが Stack クラスのため,オブジェクト指向的なクラス間のコラボレー
> ションは織り込むことが出来ませんでした.従って,デザインパターンなど
> は全く含まれていません.
> しかし,Stack は最終的にはテンプレートを用いて汎用性のあるものにし,
> 実用上問題ないレベルまで丁寧に作ったつもりです.
> ただし,そのために極めて C++ 的な,ちょっとマニアックなコーディング
> になってしまったかもしれません (^^;
おお、力作ですね。幾つか思った点を。(C++は久々なので)
(1)const性を、テスト駆動で導出できませんかね。
Stack s;
s.IsEmpty(); // OK
const Stack s;
s.IsEmpty(); // コンパイルエラー
→ const を入れる。
みたいな感じかな。
(2)Swap の導入リファクタリングは行けてますね。
Exception-safefyとも関連しますが、ここは、(C++的に)肝ですね。
(3)Tにデフォルトコンストラクタを必要とさせない、というような
要求は、C++的ですね。いい意味でも悪い意味でも。
感想:
最近Javaに慣れてしまったせいか、C++だと問題領域のこと以外に
考えなければならないことが多い、と再確認しました。
以上