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

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

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

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

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

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

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

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

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

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

Чем отличается fstream от ofstream? - C++
1 - скажите чем отличается fstream От ofstream? 2 - ofstream file1("file.txt"); for(int i=0; i<n; i++) file1 << a...

Чем отличается override от virtual? - C++
Так и не понял. Если указать метод как override, то он переопределит метод базового класса Для этого метод базового класса должен быть...

Чем отличается компилятор от интерпретатора? - C++
чем отличается компилятор от интерпретатора?

Чем отличается <string> и <cstring>? - C++
Добрый день! Подскажите, чем отличается string и cstring, использующиеся в заголовке?

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

Чем отличается istringstream от stringstream? - C++
можете объяснить работу каждого оператора?

Чем отличается описание от определения - C++
Примеры: int count; int count; Здесь ошибка: переопределение А вот здесь ошибки почему-то нет: extern int...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
14.12.2010, 13:32     Чем полиморфизм отличается от принципа подстановки #2
Ну если совсем уж в двух словах.

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

Очень упрощенно, принцип подстановки Барбары Лински говорит о том, что в хорошем коде все методы класса-потомка должны быть применимы к объекту класса родителя. Это "правило хорошего кода".
Mr.X
Эксперт С++
3042 / 1687 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
14.12.2010, 15:57     Чем полиморфизм отличается от принципа подстановки #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Очень упрощенно, принцип подстановки Барбары Лински говорит о том, что в хорошем коде все методы класса-потомка должны быть применимы к объекту класса родителя.
Немножко наоборот.
the Cat
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 4
14.12.2010, 17:55  [ТС]     Чем полиморфизм отличается от принципа подстановки #4
Тогда не является ли подстановка реализацией полиморфизма?
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
14.12.2010, 18:15     Чем полиморфизм отличается от принципа подстановки #5
Принцип подстановки это как "правило хорошего кода", правило хорошего полиморфизма, на минуточку.
Mr.X
Эксперт С++
3042 / 1687 / 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.»
Т.е. принцип подстановки выполняется, если объект предка, содержащийся в объекте потомка, ведет себя так же, как и чистый объект предка, т.е. изменение поведения наращиватся только за счет дополнительных свойств.
В общем, надо подробнее обдумать это дело.
Yandex
Объявления
14.12.2010, 20:31     Чем полиморфизм отличается от принципа подстановки
Ответ Создать тему
Опции темы

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