0

特定のタイプに自動的に変換する方法はありますか?

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が呼び出されるようなものです。

4

1 に答える 1

4

はい、 のキャスト演算子を提供できます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

于 2012-06-21T13:36:02.953 に答える