![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 18
|
![]() Код:
А множество реализаций,это когда я создам экземпляр этого класса и через него обращусь к этим методам и полям? Получается что я могу создавать разные объекты этого класса и получать доступ к методам и полям описанных в Этом классе. Полиморфизм - это когда я могу создавать много разных объектов этого класса, и получать доступ к методам и полям класса, применяя эти методы и поля в разных целях в коде ? |
![]() |
![]() |
![]() |
#22 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
на примере близком к вашему(но он с Делфи, но сути не меняет)
есть абстрактный класс TStream(поток, аля fstream) далее от него идут классы TFileStream(работа с файлом), TMemoryStream(с памятью), TSocketStream(с сетью) в итоге у нас в функция(пишу сишно уже) Код:
а откуда он берет данные функцию не волнует. надеюсь понятно? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#23 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Нет. Интерфейс - это правила взаимодействия. Действительно, в классах оно выражается в виде публичных свойств и публичных методов, эти свойства и методы предоставляют интерфейс для работы с объектом. Как они изменяют объект - деталь реализации конкретного класса. Класса, а не объекта класса. Концепция полиморфизма в C++ позволяет абстрагироваться от такой детали реализации как тип объекта, главное, дабы тип этого объекта предоставлял некий определённый интерфейс. То есть например существует тип(класс) Рисунок, у него есть метод вывести_на_экран(), от рисунка есть производные типы Домик, Солнышко, Травка, каждый из них реализует метод вывести_на_экран() по-своему(Домик отрисовывает домик, Солнышко рисует солнце и т.д.). Мы можем написать функцию, которая выводит Рисунок на экран, но мы не знаем заранее, какой из рисунков нужно нарисовать.
Код:
Последний раз редактировалось netrino; 23.05.2010 в 18:48. |
![]() |
![]() |
![]() |
#24 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 18
|
![]()
Полиморфизм - это использование методов классов не зная реализации методов?
|
![]() |
![]() |
![]() |
#25 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 136
|
![]()
Ребят,а чем отличается полиморфизм от перегрузки функций?
|
![]() |
![]() |
![]() |
#26 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
И опять мимо. Обычно мы и так не знаем реализации методов. Полиморфизм - использование методов класса, не зная с каким конкретно классом мы имеем дело. Мы знаем только то, что он предоставляет нам некий интерфейс
|
![]() |
![]() |
![]() |
#27 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() |
![]() |
![]() |
![]() |
#28 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
------ ИМХО стоит разобраться действительно ли вам нужно знать что это такое и поможет ли это вам в чем-то. Предлагаю вам написать кусочек кода, а мы скажем что вы написали. |
|
![]() |
![]() |
![]() |
#29 | |||
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]() Цитата:
Цитата:
Цитата:
А у четырнадцати - без двух У четырнадцати - тоже слышит не с первого раза. У семидесяти нянек - отсутствуют следующие органы: ...
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же Последний раз редактировалось Гром; 23.05.2010 в 19:37. |
|||
![]() |
![]() |
![]() |
#30 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 18
|
![]()
На основе всех ответов я сформулировал такое, скажите верна ли такая формулировка полиморфизму.
Полиморфизм - это использование методов и полей класса ,через объект класса, при этом не зная какого класса этот объект. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Полиморфизм, наследование и деструкторы | alex_triton | Общие вопросы C/C++ | 1 | 08.11.2009 17:52 |
Полиморфизм и выделение (освобождение) памяти | Scogan | Общие вопросы C/C++ | 9 | 13.04.2009 07:57 |
Полиморфизм и виртуальные методы | Викдон | Общие вопросы Delphi | 1 | 02.02.2009 04:40 |
Полиморфизм. Пример. | Scratch | Общие вопросы C/C++ | 53 | 28.09.2008 18:46 |