std :: coutの "< <"演算子をオーバーロードしようとする小さなコードスニペットがあります。<< ostreamで<<演算子がオーバーロードされていません。どうして?
#include<iostream>
using namespace std;
ostream& operator<<(ostream& out,const string& str)
{
out << "overloading" << str << "done";
return out;
}
int main()
{
cout << "string123";
}
出力:string123。 私のオーバーロード機能が呼び出されていないようです。どうして?
次のとおりです。 //en.cppreference.com/w/cpp/string/basic_string/operator_ltltgtgt)これは 'std :: string'を受け取りますか? –
@JoachimPileborgおそらく、 'const char *'を受け入れるものです。 – juanchopanza
@JoachimPileborg 'std :: string'を受け入れるオーバーロードは' 'ヘッダで定義されていますが、ここには含まれていません。 –