Lassen Sie uns sagen, wir haben:C++. Warum std :: cout << char + int druckt int-Wert?
char x = 'a';
int y = 1;
Also, wenn Sie laufen:
std::cout << x + y;
Er druckt 98 anstelle von 'b'. Wie ich sehe von here <<operator
hat nur Int Parameter Implementierung.
Ab jetzt habe ich 2 Fragen:
- Nach char + int Operation, welche Art zurückgegeben wird?
- Warum gibt es keine char Parameter-Implementierung, aber
std::cout << x
funktioniert immer noch wie erwartet und druckt char Wert?
dies lesen: http : //en.cppreference.com/w/cpp/language/implicit_conversion (Abschnitt Numerische Promotions -> Integrale Promotion) – Fefux
2) Es gibt einen weiteren Satz von [Nicht-Mitgliedsoperator <<] (http: //www.cplusplus.com/reference/ostream/ostream/operator-free /) das funktioniert auch mit dem Stream. –
Und das: http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt2 für die Implementierung von 'operator <<' für 'char'. Sie sollten cplusplus.com vergessen, es ist keine sehr umfassende Website. –