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

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

Войти
Регистрация
Восстановить пароль
 
Динар Габбасов
Заблокирован
#1

что означает данная строчка? &operator - C++

26.08.2012, 23:56. Просмотров 1165. Ответов 6
Метки нет (Все метки)

что это означает?
(Tabl это класс)
C++
1
friend ofstream &operator << ( ofstream &outf, Tabl MyTabl )
я так понимаю объявляется дружественная функция перегрузки оператора ввода? можете еще объяснить что происходит
C++
1
( ofstream &outf, Tabl MyTabl )
понимаю что создается объект класса Tabl но для чего? что значит ofstream &outf как это все взаимодействует?
Заранее огромное Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.08.2012, 00:04     что означает данная строчка? &operator #2
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
что означает данная строчка? &operator
&(амперсанд) - не относиться к ключевому слову operator, он относиться к ofstream т.е.
ofstream& - а это ссылка ссылка на объект класса ofstream

Добавлено через 39 секунд
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
я так понимаю объявляется дружественная функция перегрузки оператора ввода?
верно, только не ввода, а вывода

Добавлено через 40 секунд
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
можете еще объяснить что происходит
C++
1
( ofstream &outf, Tabl MyTabl )
это параметры функции

Добавлено через 2 минуты
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
как это все взаимодействует?
как это все взаимодействует можно расписывать без конца и края поэтому вам будет лучше обратиться к литературе
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
27.08.2012, 00:10     что означает данная строчка? &operator #3
Операторы в Си++ это обычные функции, так что это определение функции.
Не думаю, что следующее определение вызвало бы у тебя подобные вопросы?
C++
1
ofstream& doSomething( ofstream &outf, Tabl MyTabl );
Воспринимай все это в одном ключе.
Динар Габбасов
Заблокирован
27.08.2012, 00:28  [ТС]     что означает данная строчка? &operator #4
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
ofstream
Jupiter, это же означает посимвольное чтение из файла?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.08.2012, 08:47     что означает данная строчка? &operator #5
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
friend ofstream &operator << ( ofstream &outf, Tabl MyTabl );
Означает это следующее. Когда компилятор встретит конструкцию типа: слева от << первый параметр (объект типа ofstream, например, cout), а слева объект класса Tabl, то будет использоваться реализация этой дружественной функции. Например:
C++
1
2
Tabl A;
cout << A; // здесь будет использована реализация friend ofstream &operator << ( ofstream &outf, Tabl MyTabl );
Добавлено через 9 минут
Дружественной она сделана для того, чтобы можно было использовать привычную форму записи кода с <<. Если это метод класса, то в нём будет один параметр, который является правым операндом по отношению к <<. Левый операнд сам объект класса, который вызывает этот метод:
C++
1
ofstream &operator << (ofstream &outf);
Тогда код примет необычный вид:
C++
1
2
Tabl A;
 А << cout;
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,920
Записей в блоге: 1
27.08.2012, 08:59     что означает данная строчка? &operator #6
Перегрузка оператора вывода. одни словом что бы можно было использовать cout
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2012, 11:38     что означает данная строчка? &operator
Еще ссылки по теме:
C++ Нюансы синтаксиса: что означает строчка кода ui->setupUi(this) ?
Что означает operator void* C++
C++ Что означает данная запись
Что означает данная строка. Указатели C++
Нюансы синтаксиса: что означает данная запись C++

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

Или воспользуйтесь поиском по форуму:
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
27.08.2012, 11:38     что означает данная строчка? &operator #7
ofstream это класс потока вывода в файл. Перегружена функция для вывода объекта Tabl. friend спецификатор используется для разрешения данной функции обращаться непосредственно к закрытым членам класса Tabl.

В данном случае не понятно, почему используется копия объекта а не константная ссылка. То есть лучше записать вот так:
C++
1
friend ofstream &operator<<( ofstream &out, const Table &MyTable );
Yandex
Объявления
27.08.2012, 11:38     что означает данная строчка? &operator
Ответ Создать тему
Опции темы

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