演算子の「オーバーロード」(前置き)

c++言語の持つ機能の一つ、演算子オーバーロード。これは慣れると便利。ただ、可搬性は低くなると予想される。使われ方によっては処理速度を低下させるとか。

オーバーロードの利点は、標準的な型ではないたとえばクラスや構造体など、の演算を定義できること。例として下のようなクラスを作ってみた。

class number{
private:
  int num;
public:
  ,,,
};

このクラスになんか意味があるの、とか言わない!

こうしてクラスのメンバになると、普段出来ていた、出来ると思っていたことが、とたんに出来なくなる、それがプログラミング。

number a,b,c;
a = 10;  //できない!
c = a + b;  //できない!

とりあえず「できない」ことを覚えておいて、、、その上で。

+や+=などの演算子は数値データ型の演算に使いたい。文字列にも+なら使えそう。std::stringなど。=はごく普通に使いそうになって意図しない動作をしたら困るし、<<や>>はなんだか使いどころを見いだせそうな感じがする。論理演算子&や|にはまた使いどころがありそうな、、、!=や==はかなり使いそう。
そしてそんなあなたに演算子オーバーロードがあると。