русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Что такое полиморфизм? В каких формах он может существовать?


Дата добавления: 2015-07-09; просмотров: 516; Нарушение авторских прав


Полиморфизм – это способность объектов в одной цепочке иметь одно имя и разные реализации.

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

Полиморфизм подразумевает наличие виртуальных функций. Следовательно, класс, который имеет хотя бы одну виртуальную функцию, является полиморфным, а программа, создающая и использующая объекты такого типа, является объектно-ориентированной.

Таким образом, термины "полиморфизм" и "объектно-ориентированное программирование" могут рассматриваться в некотором роде как синонимы.

В полиморфных языках программирования полиморфизм может существовать в трех разновидностях: перегрузка, переопределение и шаблоны.

 

32. Понятие "перегрузка"?

Перегрузкой (или полиморфизмом ad hoc) называется такая ситуация, когда имеется множество различных функций (тел кода) с одним именем.

При перегрузке полиморфным является имя функции – оно многозначно. То есть можно говорить, что имя функции перегружено, если имеются два (и более) тела кода, связанные с этим именем. Но при этом функции, связанные с перегруженным именем, могут не иметь никакого семантического сходства.

Например, рассмотрим программу, в которой создаются три похожие, но различные функции sqr_it(), каждая из которых возвращает квадрат своего аргумента. Благодаря типу аргумента, компилятор знает, какую функцию вызвать.

#include <iostream.h>

#include <conio.h>

int sqr_it(int i); // объявление функции sqr_it() для значений типа int

double sqr_it(double d); // объявление функции sqr_it() для значений типа double



long sqr_it(long l); // объявление функции sqr_it() для значений типа long

int main()

{

clrscr();

cout<<sqr_it(10)<<"\n";

cout<<sqr_it(11.0)<<"\n";

cout<<sqr_it(9L)<<"\n";

return 0;

}

int sqr_it(int i)

{

cout<<"Вызов функции sqr_it() для аргумента типа int: ";

return i*i;

}

double sqr_it(double d)

{

cout<<"\nВызов функции sqr_it() для аргумента типа double: ";

return d*d;

}

long sqr_it(long l)

{

cout<<"\nВызоы функции sqr_it() для аргумента типа long: ";

return l*l;

}

 



<== предыдущая лекция | следующая лекция ==>
Указатели и ссылки на производные классы? | Приведение типа. Неопределенность. Причины возникновения неопределенности и способы ее устранения?


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.388 сек.