operator
operator は 演算内容を指示する記号などのこと。
演算の対象となる値や変数は operand という。
operatorで出来る事は
- 型変換演算子
演算子のオーバーロード
演算子 +とか=を書き換えれる。
cocosのPointの中↓
Point& Point::operator= (const Point& other) { setPoint(other.x, other.y); return *this; }
Pointの= は中で来たotherをsetPointしてあげてる。
pointA = pointB; は ↑が呼び出される
型変換演算子
operator hoge型() const
でhoge型に変換できるようになる。
ただこれだと、引数にhoge型のものに渡すと、暗黙的に変換されてしまう。
explicitをつけると暗黙ではされなくなる。
explicitのついたものを型変換するには
static_cast
//layer.hファイル explicit operator cocos2d::Layer*() const; //layer.cppファイル layer::operator cocos2d::Layer*() const { return static_cast<cocos2d::Layer*>(this->node_); }