こんにちは、このようなコードがあります。友人のオーバーロードされた演算子と変換演算子の両方に同様の機能があると思います。しかし、なぜこの場合にフレンドのオーバーロードされた演算子が呼び出されるのでしょうか? ルールは何ですか?
本当にありがとう!
class A{
double i;
public:
A(int i):i(i) {}
operator double () const { cout<<"conversion operator"<<endl;return i;} // a conversion operator
friend bool operator>(int i, A a); // a friend funcion of operator >
};
bool operator>(int i, A a ){
cout<<"Friend"<<endl;
return i>a.i;
}
int main()
{
A aa(1);
if (0 > aa){
return 1;
}
}