Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iNarek94
0 / 0 / 0
Регистрация: 10.08.2015
Сообщений: 13
#1

Объясните как прочесть это? operator>> - C++

10.08.2015, 22:54. Просмотров 249. Ответов 4
Метки нет (Все метки)

Я только-только начинаю осваивать язык C++, все время возникают вопросы, ответы на которых я кое-как нахожу в пространстве инета. Во многих местах встречал подобие сией строки, каждый раз затрудняюсь в чтении. Приведу пример из заголовочного файла istream

C++
1
inline istream& istream::operator>>(unsigned char * _s) { return operator>>((char *)_s); }


inline - объявление простой функции
& - амперсанд, используется при адресации, но я только использовал в виде &variable, где variable какая-нибудь переменная, и &variable есть адресс этой переменной. Но что такое istream&?
:: - унарная операция, используется при перегрузке, т.е. тут вызывается оператор >> из istream?
char * - указатель на строку, я так понимаю s и есть эта строка, а что такое _s?
Ну и внутренность функции тоже не понимаю, что значит возвращение operator>>((char *)_s)?

Если хотя бы на этом примере кто-нибудь объяснит что да как, буду очень благодарен
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2015, 22:54     Объясните как прочесть это? operator>>
Посмотрите здесь:

Объясните, на что ругается компилятор, и как это понимать? - C++
Здравствуйте уважаемые форумчане. Изучаю материал "Принципы и практика использования C++" Страуструпа. Остановился на главе "Ошибки". ...

Выполнение операции через получение комбинации символов? Объясните, как это сделано - C++
Полная программа, если нужно. Код нужного log.bat @ECHO OFF PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "&...

объясните пожалуйста, что это - C++
И что с этим делать)

Заголовочный фаил <algorithm> (объясните что это такое) - C++
Здравствуйте, товарищи! Что такое #include &lt;algorithm&gt;? Какие она имеет функции или макросы? И если можно их предназначение?

Как прочесть несуществующую память? - C++
Всем привет! Читаю память внутри процесса с dll таким способом: HMODULE dll = GetModuleHandleA(&quot;process.exe&quot;); DWORD base =...

Как прочесть из exe ресурс - bitmap - C++
Что сделано и что пока не получается. 1. В файле ресурсов вот такая строчка, ей и соответствующими компиляциями - добавляю в создаваемый...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
10.08.2015, 23:05     Объясните как прочесть это? operator>> #2
Цитата Сообщение от iNarek94 Посмотреть сообщение
& - амперсанд, используется при адресации, но я только использовал в виде &variable, где variable какая-нибудь переменная, и &variable есть адресс этой переменной. Но что такое istream&?
Это ссылка.
Цитата Сообщение от iNarek94 Посмотреть сообщение
:: - унарная операция, используется при перегрузке, т.е. тут вызывается оператор >> из istream?
Оператор :: с перегрузкой никак не связан. Смотри, например тут Что означает двойное двоеточие в vector<int>::iterator it ?
И operator>> здесь не вызывается, определяется (вызваться он будет внутри определения и с другим типом параметра).
Цитата Сообщение от iNarek94 Посмотреть сообщение
char * - указатель на строку, я так понимаю s и есть эта строка, а что такое _s?
Я не вижу здесь у тебя s, только _s. О каком s речь?
Цитата Сообщение от iNarek94 Посмотреть сообщение
что значит возвращение operator>>((char *)_s)?
Вызвать operator>> в параметром типа char* и вернуть ее результат.
iNarek94
0 / 0 / 0
Регистрация: 10.08.2015
Сообщений: 13
10.08.2015, 23:23  [ТС]     Объясните как прочесть это? operator>> #3
Цитата Сообщение от Velesthau
Это ссылка.
На что отсылается istream&? И почему так пишется?
Цитата Сообщение от Velesthau
Я не вижу здесь у тебя s, только _s. О каком s речь?
А зачем черточка снизу?

И про оператора тоже не очень понял Зачем двойное двоеточие? Это объект класса или что?
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
10.08.2015, 23:49     Объясните как прочесть это? operator>> #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от iNarek94 Посмотреть сообщение
На что отсылается istream&?
istream тут ни на что не ссылается, это тип возвращаемого значения. Ссылка на istream.
Цитата Сообщение от iNarek94 Посмотреть сообщение
И почему так пишется?
Странный вопрос... Потому что у С++ такой синтаксис.
Цитата Сообщение от iNarek94 Посмотреть сообщение
А зачем черточка снизу?
Просто там у тебя в библиотеке такой принятый стиль именования.
Цитата Сообщение от iNarek94 Посмотреть сообщение
Зачем двойное двоеточие?
Чтобы указать, что operator>> является функцией-членом класса istream.

Добавлено через 3 минуты
Цитата Сообщение от iNarek94 Посмотреть сообщение
Я только-только начинаю осваивать язык C++
Так ты б сначала прочитал все полностью, а потом уже смотрел библиотеку стандартную. И уже вопросы задавал после того, как прочитал что есть ссылки, операторы разрешения области видимости, приведения типов, перегрузку операторов. А то сначала подорвусь на мине, а потом прочитаю, как ей пользоваться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2015, 00:19     Объясните как прочесть это? operator>>
Еще ссылки по теме:

Как создать перегрузку operator+? - C++
Пишу так MyClass A=&quot;asdassdasda&quot;; MyClass B=&quot;cvvdvvcvdcc&quot;; MyClass C; C=A+B; MyClass operator+(MyClass &amp;A; MyClass &amp;B;){ ...

operator+ как член класса - C++
Могу ли я сделать operator+ как член класса таким образом? myClass&amp; myClass::operator+(const myClass&amp; other1, const myClass&amp; other2) { ...

Как перенести operator из базового класса в производный? - C++
Добрый день! Подскажите, пожалуйста, на простых примерах, как нужно работать с оператором перегрузки операций, если он находится в...

Как правильно использовать operator= при наследовании в полиморфных и неполиморфных классах - C++
Доброго времени суток! Изучаю книгу С. Прата &quot;Язык программирования C++. Лекции и упражнения.&quot; Закончил 13-ю главу, посвященную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
iNarek94
0 / 0 / 0
Регистрация: 10.08.2015
Сообщений: 13
11.08.2015, 00:19  [ТС]     Объясните как прочесть это? operator>> #5
Velesthau, Спасибо большое, многое внятно объяснил. Я читал по Дейтелу, главы 1-5,16,14. Вопросы начали появлятся сегодня, в конце 14-ой, при произвольном чтении/записи данных. Все ответы на мои вопросы оказались в 6-8 главах, пойду читать.
Yandex
Объявления
11.08.2015, 00:19     Объясните как прочесть это? operator>>
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru