有没有办法自动转换为某种类型:
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