![]() |
|
Модераторы: bsa |
![]()
|
|
| Nerfair |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
Добрый день, недавно начал изучать С++, сейчас изучаю тему наследование.
Пожалуйста проверьте код, меня смущает момент вывода информации, изначально я писал класс не думая о том, что информация будет наследоваться другим, и в итоге мне кажется что сам вывод на экран реализован не хорошо (тоесть компилироваться он компилируется, но метод которым реализован не оптимален).
А конкретно
Хотелось бы услышать Ваш пример реализации этого момента |
||||||
|
|||||||
| hawk3500 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2009 Репутация: нет Всего: 2 |
--------------------
воин dzen'a |
|||
|
||||
| disputant |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
А почему не просто Show, а именно OldShow?
И вообще - думаю, имеет смысл сделать метод виртуальным... И еще - достаточно одного метода Store:
|
||||
|
|||||
| hawk3500 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2009 Репутация: нет Всего: 2 |
А если ещё более гибко то вот так.
--------------------
воин dzen'a |
|||
|
||||
| Nerfair |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
Спасибо за примеры!
disputant
У меня во время написания кода, были проблемы, что выдавало ошибку о перегрузке функции, в итоге изменил название, но после всех фиксов так все и осталось, сейчас проверил, на самом деле незачем менять название метода.
Не понял что Вы имеете ввиду.
Пока не знаком :( Спасибо за напутствия! hawk3500 Большие спасибо, я еще не знаком с "friend" классами, но код посмотрел, для себя вынес и усёк некоторые моменты. Это сообщение отредактировал(а) Nerfair - 2.6.2012, 22:48 |
||||||
|
|||||||
| disputant |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Использование параметра по умолчанию. Попробуйте вместо двух методов Store оставить один - с тремя параметрами, но В ОБЪЯВЛЕНИИ указать не просто int c в качестве последнего параметра, а int c = 0. Для компилятора это означает, что если вы передаете только два параметра, то третий будет добавлен автоматически. А так как у вас методы совершенно идентичные, и метод с двумя параметрами - это тот же метод с тремя, только третий - нулевой, то нет смысла их размножать. В самом худшем варианте можно оставить оба, но реализовать тот, что с двумя параметрами, через тот, что с тремя:
По крайней мере в случае внесения изменений в логику это изменение придется вносить в одном месте, а не в нескольких
Тут мне хочется сказать прямо - я не понимаю, зачем в данном случае делать класс OldBook другом в частности, и зачем делать класс, наследуемый с public, другом в общем случае. У меня в этом случае сложилось ощущение какой-то не понятой мною шутки... Это сообщение отредактировал(а) disputant - 3.6.2012, 07:46 |
||||||||
|
|||||||||
![]()
|
| Правила форума "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. |