[c++] 배열 인덱싱 연산자의 오버로딩

C++에서는 사용자 정의 형식에 대한 배열 인덱싱 연산자 오버로딩이 가능합니다. 이것은 사용자가 정의한 클래스나 구조체에 대해서 배열처럼 동작하게 만들 수 있습니다.

배열 인덱싱 연산자 오버로딩의 구문

배열 인덱싱 연산자 오버로딩은 다음과 같이 정의됩니다:

ReturnType& ClassName::operator[](IndexType index) {
    // 인덱스 연산에 대한 로직
}

여기서:

예제

다음은 MyArray라는 사용자가 정의한 클래스에 대한 배열 인덱싱 연산자 오버로딩 예제입니다.

#include <iostream>

class MyArray {
private:
    int arr[5] = {1, 2, 3, 4, 5};

public:
    int& operator[](int index) {
        return arr[index];
    }
};

int main() {
    MyArray numbers;
    std::cout << numbers[2] << std::endl;  // 출력: 3
    numbers[2] = 10;
    std::cout << numbers[2] << std::endl;  // 출력: 10
    return 0;
}

위 예제에서 MyArray 클래스는 정수형 배열을 캡슐화하고, operator[] 함수를 사용하여 배열의 인덱싱을 가능하게 하고 있습니다.

결론

C++에서 배열 인덱싱 연산자는 사용자 정의 클래스나 구조체에 대해 오버로딩하여 배열처럼 동작하도록 만들 수 있습니다. 이것은 유용한 기능으로, 코드의 가독성을 향상시키고 사용자 정의 형식을 더 직관적으로 사용할 수 있게 합니다.

배열 인덱싱 연산자 오버로딩에 대한 자세한 내용은 C++ 공식 문서를 참고하십시오.