[C++ 문법] 배열 연산자 오버로딩
배열의 두 번째 요소에 접근하고싶다면 'a[1]'와 같이 표시해줄 수 있습니다.
여기서 '[]' 이 대괄호 표시를 '배열 연산자'라고 정의합니다.
간단한 '배열 컨테이너'를 만들어보면 그 쓰임새를 쉽게 파악할 수 있습니다.
class Array {
private:
int *arr;
int size;
int capacity;
public:
Array(int cap = 256) : arr{nullptr}, size{0}, capacity{cap} {
arr = new int[capacity];
}
~Array() { delete[] arr; }
int GetSize() const { return this->size; }
void Add(int data) {
if (size < capacity) arr[size++] = data;
}
int operator[](int index) const {
if (size > index) return arr[index];
}
};
void main() {
Array arr{512};
arr.Add(10); arr.Add(20); arr.Add(30);
for (int i = 0; i < arr.GetSize(); ++i)
cout << arr[i] << endl;
}
'Programming > C C++' 카테고리의 다른 글
[C++ 문법] '함수 객체(Functor)' (0) | 2019.05.17 |
---|---|
[C++ 문법] '-> 연산자 오버로딩'과 '스마트 포인터' (0) | 2019.05.16 |
[C++ 문법] 'const' 위치에 따른 멤버함수의 의미 (2) | 2019.05.15 |
[C] 네트워크 인터페이스에 관한 정보 - ioctl() (0) | 2019.02.02 |
[C] Reserved Names (0) | 2019.01.31 |
댓글
이 글 공유하기
다른 글
-
[C++ 문법] '함수 객체(Functor)'
[C++ 문법] '함수 객체(Functor)'
2019.05.17 -
[C++ 문법] '-> 연산자 오버로딩'과 '스마트 포인터'
[C++ 문법] '-> 연산자 오버로딩'과 '스마트 포인터'
2019.05.16 -
[C++ 문법] 'const' 위치에 따른 멤버함수의 의미
[C++ 문법] 'const' 위치에 따른 멤버함수의 의미
2019.05.15 -
[C] 네트워크 인터페이스에 관한 정보 - ioctl()
[C] 네트워크 인터페이스에 관한 정보 - ioctl()
2019.02.02