Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
the Cat
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 4
#1

Чем полиморфизм отличается от принципа подстановки - C++

14.12.2010, 09:45. Просмотров 918. Ответов 5
Метки нет (Все метки)

Собсна, такой вопрос по сабжу задали в контрольной работе по ооп.
Буду благодарна за помощь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 09:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чем полиморфизм отличается от принципа подстановки (C++):

Чем отличается this от *this? - C++
Привет всем ! вот код template<typename Key, typename Value> Dictionary<Key, Value>& Dictionary<Key, Value>::operator =(const...

Чем отличается if от (?:) - C++
Здравствуйте. Почитываю С++, сам программирую в Делфи. Вот немного запутался. В делфи есть условный оператор if, тогда как в С++ есть такой...

Чем отличается С++ от Visual С++? - C++
Здравствуете товарищи программисты! Только начал изучать язык программирования С++ и возникло пару вопросов. Чем отличается С++ от Visual...

Чем new отличается от malloc? - C++
Чем new отличается от malloc?

Чем отличается ln , lg, и log ? - C++
и как реализуются эти функцию в c++

Чем C++ отличается от C++ Builder? - C++
Чем C++ отличается от C++ Builder? И если имеется желание писать именно в C++, а не в билдере, то что для этого ещё надо освоить и каким...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
14.12.2010, 13:32 #2
Ну если совсем уж в двух словах.

Полиморфизм это возможность классов иметь разную реализацию одного и того же функционала в основном с помощью наследования. Это механизм.

Очень упрощенно, принцип подстановки Барбары Лински говорит о том, что в хорошем коде все методы класса-потомка должны быть применимы к объекту класса родителя. Это "правило хорошего кода".
0
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
14.12.2010, 15:57 #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Очень упрощенно, принцип подстановки Барбары Лински говорит о том, что в хорошем коде все методы класса-потомка должны быть применимы к объекту класса родителя.
Немножко наоборот.
0
the Cat
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 4
14.12.2010, 17:55  [ТС] #4
Тогда не является ли подстановка реализацией полиморфизма?
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
14.12.2010, 18:15 #5
Принцип подстановки это как "правило хорошего кода", правило хорошего полиморфизма, на минуточку.
0
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
14.12.2010, 20:31 #6
Цитата Сообщение от the Cat Посмотреть сообщение
Тогда не является ли подстановка реализацией полиморфизма?
Сам вопрос некорректен, так как здесь сравнивается кислое и квадратное. Согласно Википедии, полиморфизм - это возможность объектов с одинаковой спецификацией иметь различную реализацию.
А одинаковая спецификация – это реализация принципа подстановки, т.е. принцип подстановки характеризует спецификацию классов, а полиморфизм – их поведение.

Добавлено через 1 час 58 минут
Не, вообще-то в принципе подстановки тоже о поведении говорится. В Википедии написано: «Этот принцип является важнейшим критерием для оценки качества принимаемых решений при построении иерархий наследования. Сформулировать его можно в виде простого правила: тип S будет подтипом Т тогда и только тогда, когда каждому объекту oS типа S соответствует некий объект oT типа T таким образом, что для всех программ P, реализованных в терминах T, поведение P не будет меняться, если oT заменить на oS.»
Т.е. принцип подстановки выполняется, если объект предка, содержащийся в объекте потомка, ведет себя так же, как и чистый объект предка, т.е. изменение поведения наращиватся только за счет дополнительных свойств.
В общем, надо подробнее обдумать это дело.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2010, 20:31
Привет! Вот еще темы с ответами:

Чем map отличается от multimap? - C++
если можно пример напишите

Чем отличается fopen от ifstream? - C++
сабж...

Чем отличается Абстрагирование от Наследования? - C++
Много пересмотрел тем таких же на этом форуме, пытался понять абстрагирование, вообщем, можете мне ответить на несколько вопросов: 1) Чем...

C++ от Borland C++ Builder чем отличается? - C++
А с++ от Borland C++ Builder чем отличаются и отличаются ли вообще???


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.12.2010, 20:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru