this questionの先頭の答えによると、cout << expr
はcout.operator<<(expr)
に相当します。cout.operator <<()の動作の理解
this questionへの応答によれば、上記の文は真実ではありません。
私自身のテストによると、cout.operator<<()
は整数が与えられたときcout <<
と同じです。 floatを指定すると、cout.operator<<()
は整数に変換されます。 cout.operator<<("hello world")
のように文字列リテラルが与えられると、メモリアドレスのように見えるものが出力されます。そして、std :: stringを保持する変数が与えられると、コンパイラエラーが発生します。
何が起こっているのか、初心者から中級者の説明はありますか?
"*' cout << expr'は 'cout.operator <<(expr)' *と等価です真実。第2の質問+第1のコメントからの答えはそのことを説明しています。重複しているかどうかは分かりません。おそらくこれが役立ちます:https://stackoverflow.com/questions/ 36809463/m-36809565#36809565フリーで機能を実装する利点 – luk32