#include <iostream>
using namespace std;
class Foo{
string _s;
public:
Foo(string ss){
_s = ss;
}
Foo& operator=(bool b){
cout << "bool" << endl;
return *this;
}
Foo& operator=(const string& ss){
cout << "another one" << endl;
return *this;
}
};
int main(){
Foo f("bar");
f = "this";
return 0;
}
オーバーロードされ=
た演算子があります。f = "this";
オーバーロードを呼び出すステートメントを期待していましoperator=(const string& ss)
た。しかし、そうではありません。オーバーロードと呼びますoperator=(bool b)
。なんで?