新・明解C++で学ぶオブジェクト指向プログラミング | ||||
|
第4章 資源獲得時初期化と例外処理
*new で確保した動的記憶域は、残り続ける。デストラクタに delete [] を入れておく。
*コンストラクタに explicit をつけると、= 形式でコンストラクタが起動されるのを抑止する。
IntAry a = 5; // NG IntAry b(5); // Good
*下記の場合、オブジェクト a はどこからも指されなくなる。
IntArray a(2); IntArray b(5); a = b;
*範囲チェック
int a[15]; a[24] = 256; // エラー int& IntArray::operator[](int i) { if( i<0 || i >= nelem ) // エラー処理 else return ver[i]; }
*エラーの発生を見つけることは容易だが、そのエラーに対してどのように対処すべきかの決定は難しい。エラーの対処法は、部品の開発者ではなく利用者によって決定される。