기존의 제공하고있는 연산자를 재정의하여 사용자 정의 클래스로 사용하는것을 말한다.
대부분의 기본 제공 연산자 함수는 전역함수 또는 클래스로 재정의가 가능하다.
오버로드 된 연산자는 함수로 구현된다.
예)
#include <iostream>
class Test
{
private:
int _num;
int _div;
public:
Test(): _num(0), _div(0) {}
Test(int num, int div): _num(num), _div(div) {}
operator int() const
{
return _num / _div;
}
};
int main(void)
{
Test t(10, 2);
int ret;
ret = t;
std::cout << ret << std::endl;
return (0);
}
// random_access_iterator
operator random_access_iterator<value_type const>() const
{
return random_access_iterator<value_type const(_ptr);
}