C++ 不允许基于返回类型的方法的多态性。但是,当重载隐式转换成员函数时,这似乎是可能的。
有谁知道为什么?我认为操作符在内部像方法一样被处理。
编辑:这是一个例子:
struct func {
operator string() { return "1";}
operator int() { return 2; }
};
int main( ) {
int x = func(); // calls int version
string y = func(); // calls string version
double d = func(); // calls int version
cout << func() << endl; // calls int version
}