その中にあったサンプルコードを書いてコンパイルしたところ、下記のエラーが発生してしまいます。
本と見比べても間違えているところが見つからず、何がエラーかがわかりません。
理由と対処方法を教えていただけないでしょうか。
使用環境は Windows8 で、 Micorsoft Visual Studio 2015 です。
IntArray.h
#ifndef INTARRAY_H_20070101_1529_80AHFDJI_INCLUDE_
#define INTARRAY_H_20070101_1529_80AHFDJI_INCLUDE_
class IntArray{
public:
IntArray(const IntArray& other); // コピーイントラクタ
public:
// コントラクタ・デストラクタ
IntArray(int size);
~IntArray();
public:
// メンバへのアクセス関数
int Get(int i);
void Set(int i, int value);
private:
// インデックスのチェック
void CheckIndex(int i);
public:
// 配列のサイズを返す
int Size();
private:
int* m_array; // 動的配列
int m_size; // 配列の要素数
};
#endif // #ifndef INTARRAY_H_20070101_1529_80AHFDJI_INCLUDE_
#include "IntArray.h"
#include <iostream>
#include <algorithm>
#include <cstdlib>
using namespace std;
// コピーインストラクタ
IntArray::IntArray(const IntArray& other) {
m_array = new int[other.m_size];
m_size = other.m_size;
copy(other.m_array, other.m_array + m_size, m_array);
cout << "コピーイントラクタが呼ばれました。" << endl;
}
// コンストラクタ
IntArray::IntArray(int size) {
m_array = new int[size];
m_size = size;
cout << "コントラクタが呼ばれました。"
<< "要素数は " << m_size << " です。" << endl;
}
// デストラクタ
IntArray::~IntArray() {
delete[] m_array;
cout << "デストラクタが呼ばれました。"
<< "要素数は " << m_size << " でした。" << endl;
}
// メンバへのアクセス関数
int IntArray::Get(int i) {
CheckIndex(i);
return m_array[i];
}
void IntArray::Set(int i, int value) {
CheckIndex(i);
m_array[i] = value;
}
// インデックスのチェック
void IntArray::CheckIndex(int i) {
if (0 <= i && i < m_size) {
// インデックスは正常です
}
else {
cout << "インデックスが不正です!" << endl
<< "値 : " << i << endl;
exit(EXIT_FAILURE);
}
}
// 配列のサイズを返す
int IntArray::Size() {
return m_size;
}
void Viss(int num) {
cout << "Viss : No. " << num << endl;
}
#include "IntArray.h"
#include <iostream>
using namespace std;
void Viss(int num) {
cout << "Viss : No. " << num << endl;
}
void Show(IntArray array) {
Viss(2);
for (int i = 0; i < array.Size(); ++i) {
cout << array.Get(i) << ' ';
}
cout << endl;
Viss(3);
}
int main() {
IntArray array0to9(10);
for (int i = 0; i < array0to9.Size(); ++i) {
array0to9.Set(i, i);
}
Viss(1);
Show(array0to9);
Viss(4);
}
よろしくお願いします。