演算子のオーバーロードをすることができる機能.
=,+,*,/など演算子に機能を割り当てることができる.
例
#include<iostream>
template <typename T> class TYPE
{
private:
T data;
public:
TYPE(){};
TYPE(T val){this->data=val;};
TYPE& operator = (T val){this->data=val;return *this;};
TYPE& operator = (TYPE val){this->data=val;return *this;};
TYPE operator ++(){++this->data; return this->data;};//単項演算子
TYPE operator + (T val){return this->data + val;};//
TYPE operator * (T val){return this->data * val;};
TYPE operator / (T val){return this->data / val;};
operator T(){return data;};
~TYPE(){};
};
int main()
{
TYPE<double> a=1;
TYPE<double> b=2;
std::cout << ++b << std::endl;
std::cout << a+b << std::endl;
std::cout << a*b << std::endl;
std::cout << a/b << std::endl;
return 0;
}