以下のコードは、実行時にエラーが発生する。その原因を追求し、修正しなさい。
以下のコードは、int型のデータを動的に格納するためのクラスである。
class CIntArray { public: CIntArray() { pData = 0; } CIntArray(int iSize) { pData = new int [iSize]; } virtual ~CIntArray() { delete [] pData; } void Set(int iIndex, int iData) { pData[iIndex] = iData; } private: int* pData; }; int main() { CIntArray array1(10), array2; array1.Set(0, 10); array1.Set(5, 100); // array1の内容をarray2に代入 array2 = array1; return 0; }(参考)以下のようにして、コンストラクタとデストラクタがどのようにコールされるか しらべると良い。
class CHuman : public CMammal { public: CHuman() { cout << "Constructor: CHuman" << endl; } virtual ~CHuman() { cout << "Destructor: CHuman" << endl; } .... }; class CMammal { public: CMammal() { cout << "Constructor: CMammal" << endl; } virtual ~CMammal() { cout << "Destructor: CMammal" << endl; } }