operatorキーワードを使えば実装できる。
class CMyClass { public: operator int() const; } CMyClass::operator int() const { // キャストした後の型で、適切な値を返すようにします。 return 0; }
みたいな感じで。
使い方は、
CMyClass classValue; int intValue = (int)classValue;
のように、キャスト演算子を実装したクラスのインスタンスを、実装したキャスト演算子でキャストできるようになる。
デフォルトだと暗黙キャストが有効なので、明示的にキャストすることを必須にしたいなら、
explicit operator const char*() const;
のように、explicitキーワードをつければよい(C++11以降)。
ただし、boolのように注意しなければいけないパターンもある。詳細は参考リンクを見ること。
コメントを残す