![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| murzzzzz |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 13.2.2005 Где: Киев Репутация: 1 Всего: 1 |
у меня седня был день перегрузок операций
может проффесиональным программерам это построение довольно привычно, но для меня оно тяжелое на восприятие... может есть какие-то другие способы перегрузки именно для этой операции? Добавлено @ 01:12 ой, забыла скобки добавить
|
||||
|
|||||
| Chaos A.D. |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 16.1.2005 Где: 09 RUS Репутация: 6 Всего: 7 |
Если ты хочешь перергузить этот оператор таким образом, чтобы работала строка cout << YourClass, ты можешь залезть в заголовочные файлы реализации cout, и добавить туда еще одну перегрузку этого оператора, для твоего класса в качестве второго аргумента. Т.е. для класса ofstream ты перегрузишь оператор таким образом :
Как видишь, только один аргумент у этого оператора означает, что первым аргументом всегда является экземпляр класса, у которого этот оператор перегружается. В данном случае - ostream. Но это далеко не лучшая идея - менять что-либо в исходниках ostream, потому что для компиляции твоего кода на другой машине понадобится измененный заголовочный файл. Ну а с друзьями все намного проще, не так ли? Использование друзей - единственный способ перегрузки этого оператора с двумя аргументами. Это сообщение отредактировал(а) Chaos A.D. - 17.2.2005, 01:48 --------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 2 Всего: 39 |
В данном случае для вывода ты сможешь использовать только public данные и функции, в отличии от френдовых функций |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |