変換関数(Conversion function)

きょう,おれのTeach yourself C++が,

ある方のオブジェクトを他の方のオブジェクトに変換すると便利なことがあります。

と言っていた.
そいつを,うまいことやってくれるのが変換関数らしい.

ほうほう.

どんなことができるのかというと,
オブジェクトをintに変換したりできる.

operator <type>(){
  return <value>
}

例.

#include <iostream>
using namespace std;

class Coord{
  int x, y;
 public:
  Coord(int i, int j){
    x=i;
    y=j;
  }
  operator int(){
    return x+y;
  }
};

int main(){
  Coord o1(1,2);
  Coord o2(3,5);
  int num;

  num = o1;
  cout << num << '\n';
  num = o2;
  cout << num << '\n';

  num = 10 + o1 + o2;
  cout << num << '\n';

  num = o1 + o2;
  cout << num << '\n';

  return 0;
}

実行結果は,

3
8
21
11

とでる.

便利ー?なような,わかりづらくなりそうな.