Home operator[]:C++
Post
Cancel

operator[]:C++

연산자 오버로딩 함수. 배열과 같은 데이터 구조에 대한 인덱스 접근을 제공. 클래스나 사용자 정의 자료형에서 배열과 유사한 인터페이스를 제공할 때 유용함.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cassert>

class MyClass {
private:
    int data[5];  // 예시로 정수형 배열을 멤버로 사용

public:
    // 배열에 대한 인덱스 접근을 위한 operator[] 함수
    int& operator[](int index) {
        assert(index >= 0 && index < 5);  // 인덱스 범위 검사
        return data[index];
    }
};

int main() {
    MyClass obj;

    // operator[]를 사용하여 배열에 값 할당
    for (int i = 0; i < 5; ++i) {
        obj[i] = i * 2;
    }

    // operator[]를 사용하여 배열 값 출력
    for (int i = 0; i < 5; ++i) {
        std::cout << obj[i] << " ";
    }

    return 0;
}
1
0 2 4 6 8 

위의 예제에서 MyClass 클래스는 정수형 배열 data를 멤버로 갖고 있다. operator[] 함수는 배열과 같이 인덱스를 받아 해당 인덱스의 요소에 접근하도록 정의되어 있다. 주의할 점은 operator[] 함수가 참조(int&)를 반환하고 있으므로, 배열 요소에 값을 할당할 수 있다.

이러한 연산자 오버로딩을 사용하면 사용자 정의 클래스를 배열처럼 다룰 수 있어 편리하게 데이터에 접근할 수 있다.

This post is licensed under CC BY 4.0 by the author.