特定のタイプに自動的に変換する方法はありますか?
class A
{ public:
int f();
float g();
};
r(int x){}
t(float x){}
...
r(A) //automagically call r(A.f())
t(A) //automagically call t(A,t())
印刷時にJavaオブジェクトに対してtoStringが呼び出されるようなものです。
特定のタイプに自動的に変換する方法はありますか?
class A
{ public:
int f();
float g();
};
r(int x){}
t(float x){}
...
r(A) //automagically call r(A.f())
t(A) //automagically call t(A,t())
印刷時にJavaオブジェクトに対してtoStringが呼び出されるようなものです。
はい、 のキャスト演算子を提供できますA
。
class A
{
public:
int f();
float g();
operator int() { return f(); }
operator float() { return g(); }
};
ただし、インスタンスr
で andを呼び出します。t
A a;
r(a);
t(a);
完全なコードは次のとおりです: http://ideone.com/Pfa4v