코드 공부 중인데 뭐가 문제인지 알 수가 없어 좀 도와줘


이게 헤더

SafeIntArray.h


#pragma once
#ifndef SAFEINTARRAY_H_INCLUDED
#define SAFEINTARRAY_H_INCLUDED
#include <iostream>

class SafeIntArray {
 int limit;
 int *arr;

public:
 SafeIntArray(int nOfEl) : limit(nOfEl) {
  arr = new int[nOfEl];
 }

 ~SafeIntArray() {
  delete[] arr;
 }

 int &operator[](int i) {
  if (i < 0 || i >= limit) {
   std::cout << "첨자가 범위를 벗어나 프로그램을 종료합니다";
   exit(1);
  }

  return arr[i];
 }
};


#endif // !SAFEINTARRAY_H_INCLUDED


이게 소스

SafeIntArray.cpp


#include "SafeIntArray.h"
#include <iostream>

using namespace std;


int main() {
 SafeIntArray a(10);

 for (int i = 0; i < 10; i++)
  a[i] = i;

 cout << a[5] << endl;
 cout << a[12] << endl;

 return 0;
}


비쥬얼 스튜디오 2017 버전 쓰고

이게 코드를 빌드하면 하단 출력부에 나오는 결과


========== 빌드: 성공 0, 실패 0, 최신 1, 생략 0 ==========

성공도 아니고 실패도 아니고 오류도 안나오고 당최 감을 못잡겠음

operator[] 부분이 문제인가 싶어서 앞에 friend도 붙여 봤는데

또 이걸 붙이면 또 막 오류가 붙어 나와 operator[]가 멤버 함수여야 한다나?


책이랑 버전이 달라서 그런가 싶기도 한데 뭐가 문제일까?