Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 23:39   #1
mister2010
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 18
По умолчанию Полиморфизм

Знаю что такое инкапсуляция - это объединения данных(методов),
и кода(переменных) в объект и скрытие реализации объекта от пользователя предоставив ему лишь интерфейс объекта.

Наследование-способность другим классам получать свойства родительского класса.
Не могу въехать что означает понятие Полиморфизм, хотя и прочитал не раз.
Полиморфизм - это объект класса, который можно использовать в коде для разных целей?
mister2010 вне форума Ответить с цитированием
Старый 20.05.2010, 23:56   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

http://ru.wikipedia.org/wiki/%D0%9F%...D0%B8%D0%B5%29
Неужели так трудно найти?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 21.05.2010, 00:12   #3
mister2010
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 18
По умолчанию

Так я это перечитывал уже, обясните человеческими словами что такое слово полиморфизм.

Последний раз редактировалось mister2010; 21.05.2010 в 00:17.
mister2010 вне форума Ответить с цитированием
Старый 21.05.2010, 02:34   #4
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Я плохой оратор, но все же попытаюсь объяснить как это понимаю я.
Есть 2 класса ("Класс1" и "Класс2") которые содержат методы с одинаковыми названиями и параметрами(на пример квадратное уравнение можно вычислить 2 способами в зависимости от того четное "Б" или нет)
Так же есть класс с которого и начинается работа всей программы. Он содержит 2 функции "Маин" и "Полиморфизм" в Маин выполняется какое-то действие(например ввод "А","Б" и "С") в результате которого мы должны проверить четное ли "Б" и в зависимости от результата создать объект требуемого класса (для того чтобы можно было наследовать его методы). Дальше передадим созданный объект в метод "Полиморфизм" где уже прописаны функции которые будем вызывать.
Т. е., т. к. имена методов классов "Класс1" и "Класс2" совпадают , можно использовать методы нескольких классов с помощью передач разных объектов в метод.
Псевдокод псевдокода))
//-------------
если "Б" четное тогда создаем объект класса "Класс1" и вызываем методы: disckriminant, koren, x1, x2, ну и ситуации если дискриминант больше 0, меньше 0 или равен 0
иначе создаем объект класса "Класс2" и вызываем: disckriminant, koren, x1, x2, ну и ситуации если дискриминант больше 0, меньше 0 или равен 0
//------------
Либо можно сделать метод "Полиморфизм" который будет содержать:
disckriminant, koren, x1, x2 и ситуации если дискриминант больше 0, меньше 0 или равен 0. Теперь из "Маин" передать созданный объект в "Полиморфизм".
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 21.05.2010, 02:51   #5
mister2010
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 18
По умолчанию

Дайте чёткое определение этого термина.
mister2010 вне форума Ответить с цитированием
Старый 21.05.2010, 02:53   #6
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Цитата:
Полиморфи́зм (в языках программирования) — взаимозаменяемость объектов с одинаковым интерфейсом.
Ну куда уж четче!
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 21.05.2010, 02:58   #7
mister2010
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 18
По умолчанию

Суть что оно означает напишите, а не кучу текста в котором больше излагается о квадратном уравнении чем о значении полиморфизма, полиморфизм - это, своими словами, а не заумными фразами и сложными примерами википедии и др. учебников.

Последний раз редактировалось mister2010; 21.05.2010 в 03:01.
mister2010 вне форума Ответить с цитированием
Старый 21.05.2010, 03:09   #8
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Полиморфизм - положение теории типов, согласно которому имена (например, переменных) могут обозначать только объекты одного и того же класса.
Учи не ООП, а толковый словарь, так смотри и "заумных" фраз станет поменьше, может хоть одну поймешь.
Skype: CODERua

Последний раз редактировалось [CODER]; 21.05.2010 в 03:14.
[CODER] вне форума Ответить с цитированием
Старый 21.05.2010, 03:25   #9
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

mister2010
реши что тебе надо - четкое определение или обьяснить своими словами. Есть у тебя иерархия классов:
base----class1------class2 - тут class1 наследует Base, class2 наследует class1.
Ты можешь где то написать:
Код:
base *obj=new class1();
delete obj;
obj=new class2();
Это возможно если у классов одинаковые интерфейсы, а так как base для всех базовый, то и его интерфейс всем подходит.
А определение: "взаимозаменяемость объектов с одинаковым интерфейсом." очень даже четкое
rrrFer вне форума Ответить с цитированием
Старый 21.05.2010, 12:02   #10
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2mister2010
Цитата:
своими словами, а не заумными фразами и сложными примерами википедии и др. учебников.
термин полиморф известен? к программированию он не имеет никакого отношение. своими словами - полиморфное(многообразное, многоформенное) поведение объектов. в с++ например, бывает статический и динамический полиморфизм. динамический основан на виртуальных функциях, подстановке другого интерфейса (полиморфное поведение в рантайме). статический - на перегрузке функций, шаблонах (полиморфное поведение на этапе компиляции).
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 21.05.2010 в 12:06.
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полиморфизм, наследование и деструкторы 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