3

次の関数を使用して、文字列と二重の演算子 + を定義しようとしています

string operator + (const double& b,const string a){
    return to_string(b)+a;
}

以下の操作をしているとうまくいきます

double c = 100.256;
string d = "if only";
cout<<c+d<<"\n";

しかし、 string の代わりに const char を渡すと、コンパイル エラーがスローされます (型 'double' および 'const char [4]' からバイナリ 'operator+' への無効なオペランド)

double c = 100.256;
string test = c+"sff";

const char[] "sff" から文字列への暗黙的な変換が行われないのはなぜですか?

4

1 に答える 1