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のように注意しなければいけないパターンもある。詳細は参考リンクを見ること。
コメントを残す