첨자 연산자 오버로딩 (Subscript Operator Overloading)
[]
(subscript operator) 내부에 숫자 뿐만 아니라 문자 등 다양한 자료형이 들어갈 수 있다.
예제
#include <iostream>
class IntList
{
int list_[10];
public:
int& operator [] (const int index)
{
return list_[index];
}
};
int main()
{
using namespace std;
IntList my_list;
my_list[3] = 1;
cout << my_list[3] << endl;
my_list[3] = 10;
cout << my_list[3] << endl;
}
/* stdout
1
10
*/
const
를 사용할 경우
#include <iostream>
class IntList
{
int list_[10] = { 0, 1, 2, 3, 4, 5 };
public:
int& operator [] (const int index)
{
return list_[index];
}
const int& operator [] (const int index) const
{
return list_[index];
}
};
int main()
{
using namespace std;
const IntList my_list;
cout << my_list[3] << endl;
}
/* stdout
3
*/