可以说我有一个类
Class rofl {
int a;
float b;
rofl::rofl(int a, float b) {
this->a = a; this->b = b;
}
}
有可能做
rofl* sup = new rofl(5, 2.0f);
float hello = sup;
这样变量hello将获得sup.b的值?
最佳答案
是的,您可以重载类型转换运算符:
class Rofl {
public:
operator float() const { return b; }
...
};
有关演示,请参见http://ideone.com/Y7UwV。
但是,请参阅Scott Meyers的More Effective C++的项目5,标题为“警惕用户定义的转换操作”。允许在复杂类型之间进行隐式转换通常会导致各种细微的错字错误。
关于c++ - 过载返回类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11177418/