Я пытаюсь понять, что на самом деле происходит, когда я компилирую и выполняю код на C++, но строка cout << "output";
меня немного смущает.Что происходит, когда вы выполняете `cout <<" output ";` в C++?
Я знаю, что <<
, является оператором побитового leftshift, и что выполнение y = x << 6
присвоит значение y
, полученное в результате сдвига x
влево на шесть бит.
Я также знаю, что «< <», по отношению к потокам, является оператором вставки, и что выполнение cout << "output";
вставляет строку output
в объект cout
.
То, что я хочу знать, является ли это пример перегрузки <<
, или если cout
действительно сдвигается влево на значение, которое соответствует количеству битов, занимаемых строкой output
. Если output
действительно просто вставлен в cout
через перегрузку <<
, то почему используется побитовый оператор, а не оператор присваивания =
, что было бы более интуитивно понятным?
Вопрос: Как cout << "output"
разместить слово «выход» на экране терминала?
«Я видел, как« cout »смещается« Hello world »раз влево и останавливается прямо там». – 2010-12-06 22:57:12
Я не понимаю, почему вы думаете, что перегрузка `=` будет более интуитивной. – 2010-12-06 23:35:40
cout и iostream предшествуют стандартной библиотеке C++ и были очень распространены. Он застрял, с несколькими незначительными отличиями. Обычно вы перегружаете оператора, чтобы он имел то же общее значение, что и предполагалось. – CashCow 2014-08-13 16:39:31