自动类型转换函数调用C ++

时间:2012-06-21 13:34:38

标签: c++

有没有办法自动转换为某种类型:

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。

1 个答案:

答案 0 :(得分:4)

是的,您可以为A提供强制转换操作符

class A
{ 
public:
  int f();
  float g();

  operator int() { return f(); }
  operator float() { return g(); }
};

但您可以在实例上调用rt

A a;
r(a);
t(a);

以下是完整代码:http://ideone.com/Pfa4v