Subscripting
아래 첨자 연산자 (), like 함수 호출 연산자를 이항 연산자 라고 합니다.아래 첨자 연산자는 비정적 멤버 함수는 하나의 인수를 사용 해야 합니다.이 인수는 임의의 형식이 될 수 있습니다와 원하는 배열 아래 첨자를 지정 합니다.
예제
다음 예제에서는 형식의 벡터를 만드는 방법을 보여 줍니다. int 범위 검사를 구현 합니다.
// subscripting.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class IntVector {
public:
IntVector( int cElements );
~IntVector() { delete [] _iElements; }
int& operator[]( int nSubscript );
private:
int *_iElements;
int _iUpperBound;
};
// Construct an IntVector.
IntVector::IntVector( int cElements ) {
_iElements = new int[cElements];
_iUpperBound = cElements;
}
// Subscript operator for IntVector.
int& IntVector::operator[]( int nSubscript ) {
static int iErr = -1;
if( nSubscript >= 0 && nSubscript < _iUpperBound )
return _iElements[nSubscript];
else {
clog << "Array bounds violation." << endl;
return iErr;
}
}
// Test the IntVector class.
int main() {
IntVector v( 10 );
int i;
for( i = 0; i <= 10; ++i )
v[i] = i;
v[3] = v[9];
for ( i = 0; i <= 10; ++i )
cout << "Element: [" << i << "] = " << v[i] << endl;
}
설명
때 i 앞의 프로그램의 10에 도달 operator[] 범위를 벗어나는 아래 첨자 사용 하 고 오류 메시지를 표시할 것을 감지 합니다.
참고 함수 operator[] 참조 형식을 반환 합니다.그러면 아래 첨자 식이 할당 연산자의 양쪽에 사용할 수 있게 l-value를 사용 하려면.