![]() |
|
Модераторы: bsa |
![]()
|
|
| ArniLand |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Написал программу где нужно было использовать перегрузку <<, >> и сохранение и считывание в текстовый файл. Вопрос есть также, как правильно сделать пустым массив типа сhar? Про комментировал строку в программе где нужно это сделать. Компилятор VS 2008 professional. Выдает такие ошибки:
Код программы:
Это сообщение отредактировал(а) ArniLand - 27.5.2010, 20:51 |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
если у вас ДВА параметра, и вы хотите использовать operator<< в "привычном режиме"*, то вам нужно сделать этот метод friend-ом (friend, напомню, уже НЕ член класса и в части реализации указывать classname:: уже нет надобности). Собственно friend нужен для доступа к внутренностям написанного вами класса и для удобной и синтаксически понятной записи. *"привычный режим operator<<" - тут я подразумеваю вызов в виде cout<<1. Это преобразуется в operator<<(cout, 1) (вызов по сути глобальной функции), т.к. если operator<< будет членом класса, то вызвать его придется как cout.operator<<(1) {вопрос к общественности: какие еще способы будут?} -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| ArniLand |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
jonie,Спасибо насчет подсказки с friend, ошибку исправил. Можете еще пожалуйста подсказать что не так с этими строками?
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
ArniLand, "жалуется" ? А сиську не просит? КАК жалуется??
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| ArniLand |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
ошибку такого плана оно выдает тут
|
||||
|
|||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
ну как минимум стОит передавать ссылку на Students, т.к. Students& в функции operator<< (и >>), т.к. копировать накладно... идейно ошибок не доллжно быть, вероятно вы упустили другие ошибки (более раннии) либо не сделали include с h файлом, где у вас объявление Students имеется (а также не сделали защиты от повторного включения в h файле!)
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
ArniLand
убери скобки
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
toxx, угу, гуд что заметил, я не лазил в вверх в код.
Для тех кто не в теме: скобки означают что объявлена функция (опережающее объявление) obj не принимающая аргументов и возращающая Students, а не объект (как задумывалось). -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
jonie
Просто уже не 1й раз пишет сюда, и все время одни и те же ошибки... Уже сколько раз писали что лучше писать const, но я напишу еще раз может в след раз напишет как нужно =)
|
|||
|
||||
| ArniLand |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
toxx, вы немного ошиблись, там где оператор >> писать const
не нужно, а то буде выдавать оишбку Это сообщение отредактировал(а) ArniLand - 27.5.2010, 22:20 |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
ArniLand, ээмммм. Там же read-only. Const нужен, иначе константный объект не распечатаете.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
djamshud
Ура! у меня последователи ;) я вот все думаю.. не лучше выделять память динамически лучше тут? ArniLand
mutable Это сообщение отредактировал(а) toxx - 27.5.2010, 22:43 |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
toxx, ура! У меня появился кумир!
К черту mutable, его используют только в специфических случаях. Я не знаю, что за ошибки выдает компилятор, но идеологически в ту функцию нужно передавать объект по ссылке на константу. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
djamshud
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |