return arr[idx];

int& 형식에서 const int 형식 이니셜라이저로의 바인딩 참조에서 한정자가 삭제되었습니다.


라고 나오는데 이게 무슨말이야?





class BoundCheckIntArray

{

private:

int arr[5];

int arrlen;

BoundCheckIntArray(const BoundCheckIntArray &arr) { }

BoundCheckIntArray& operator=(const BoundCheckIntArray &arr) { }


public:

BoundCheckIntArray(int len) : arrlen(len)

{}

int& operator[](int idx) const

{

if(idx < 0 || idx >= arrlen)

{

cout << "Array index out of bound exception" << endl;

exit(1);

}

return arr[idx];

}

int GetArrLen() const { return arrlen; }

~BoundCheckIntArray() { delete []arr; }

};