なぜ3つの演算子< <が異なる方法で出力しますか?期待通りに他の人が...C++演算子<<(char)ですが、出力はヘキサ/ int
誰かがより多くの私にそれを説明してもらえませんしながら、
#include <iostream>
#include <string>
using namespace std;
int main()
{
operator<<(cout, "Hello").operator<<('w').operator<<(endl); // Hello119
cout << (void *)'w' << endl; // 0x77
cout << 'w'; // w
operator<<(operator<<(cout, "Hello"), 'w').operator<<(endl); // Hellow !!!
}
2つの引数を持つ最初のオペレータ< <は、文字列の右出力を与えますか?
さらに詳しい情報:
cout << "Hello" << 'w' << endl;
があると解釈されるだろう...
operator<<(operator<<(cout, "Hello"), 'w').operator<<(endl); // Hellow
この出力のどの部分が予期しないものですか? [asciiテーブル](http://www.asciitable.com/)を見ると、 '' w ''の10進数表現と16進表現が分かります。 – NathanOliver
'.operator <<()'メンバ関数の連鎖呼び出しでは、通常のように '<< 'を連鎖するのと同じ出力が得られます。 –
Thi
私はそれを理解しました...これは動作します: 'operator <<(operator <<(cout、" Hello ")、 'w')。operator <<(endl); // Hellow' – Thi