4968

Полиморфизм и виды его операций

Реферат

Информатика, кибернетика и программирование

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

Русский

2012-11-30

30.97 KB

4 чел.

Полиморфизм

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

Полиморфизм используется в так называемых абстрактных классах, предназначенных для описания структур данных: массивов, списков, деревьев и т.д. В качестве параметров таких классов задаются типы элементов структур данных.

Виды полиморфизма

Различают следующие виды полиморфизма:

- полиморфизм функций (переопределение функций)

- полиморфизм операций (переопределение операций)

- шаблоны

Полиморфизм операций (переопределение операций)

Переопределение операций – использование знаков операций над переменными стандартных типов данных для программирования операций над переменными пользовательских типов данных. Например, для объектов пользовательского класса можно придумать операции сложения, умножения, сравнения на равенство, сравнения на большинство/меньшинство и т.д.

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

Правила перегрузки операций

1. Можно перегружать любые операции ., *, ?:, ::, sizeof.

2. Все операции наследуются кроме присваивания.

3. При перегрузке операции с одним операндом она не должна иметь параметров

4. При перегрузке операции с двумя операндами она должна иметь один параметр (ссылку на объект).

5. Для организации последовательности операций они должны возвращать ссылку на объект.

6 Операции ++ и -- переопределяются в префиксной и постфиксной формах. Для префиксной формы входных параметров нет, для постфиксной – один целочисленный входной параметр.

7. Операция присваивания определяется по умолчанию.

Пример перегрузки операций

Перегрузка операции увеличения на 1 в классе вектор

Перегрузка операции сложения в классе Вектор

Перегрузка операции сравнения в классе Человек

#pragma once

class Person

{

public:

Person(void);

~Person(void);

private:

 char* Fio;

 int Age;

public:

 void SetAll(char* Fio1, int Age1);

 void Print(void);

 bool operator <(Person& P2);

};

#include "StdAfx.h"

#include ".\person.h"

#include <string.h>

Person::Person(void)

: Fio(NULL)

, Age(0)

{

}

Person::~Person(void)

{

}

void Person::SetAll(char* Fio1, int Age1)

{

Fio=new char[strlen(Fio1)];

strcpy(Fio,Fio1);

Age=Age1;

}

void Person::Print(void)

{

printf("%s %d\n",Fio,Age);

}

// Сравнение объектов на меньшинство по алфавиту и по возрасту

bool Person::operator <(Person& P2)

{

 if(strcmp(Fio,P2.Fio)<0)

 return true;

 else

 if(strcmp(Fio,P2.Fio)==0 && Age<P2.Age)

  return true;

 else

  return false;

 return false;

}

#include "stdafx.h"

#include ".\person.h"

main()

{

Person P1, P2;

P1.SetAll("Иванов", 35);

P2.SetAll("Петров", 20);

 if(P1<P2)

 printf("P1<P2-verno");

   

}


 

А также другие работы, которые могут Вас заинтересовать

13164. Робота з проблемно-орієнтовним програмним забезпеченням 416.5 KB
  ...
13165. Основные возможности ABBYY FineReader 8.0 Professional Edition 34 KB
  Основные возможности ABBYY FineReader 8.0 Professional Edition Интеллектуальная система оптического распознавания ABBYY FineReader 8.0 идеальное решение для тех кому нужен высочайший уровень точности распознавания и сохранения оформления. ABBYY FineReader переведёт бумажные документы PDFфайлы и ц...
13166. Створення найпростішої Web-сторінки 164.58 KB
  ЛАБОРАТОРНА РОБОТА № 15 Тема: Створення найпростішої Webсторінки. Мета: навчитися застосовувати знання з HTML набуті на лекційних заняттях; навчитися створювати вебсторінки використовуючи мову HTML та редактор PSPad. Теоретичні відомості: ...
13167. Менеджмент. Ответы к экзаменам 1.96 MB
  Оглавление. Принципы риск менеджмента. Оценка рисков и методы их минимизации. Системы Интернет бронирования туристских услуг: классификация характеристика предоставляемых услуг и перспективы развития ...
13168. Теорія виховання. Конспект лекцій 894 KB
  Теорія виховання ЛЕКЦІЯ 1 ТЕМА: Сутність зміст процесу виховання. ПЛАН : Процес виховання його структура і рушійні сили. Принципи виховання. 1. Процес виховання його структура і рушійні сили. Природа не творить людини як цілісної особистості вона ли...
13169. История западной философии и ее связи с политическими и социальными условиями от античности до наших дней 4.16 MB
  Бертран Рассел История западной философии и ее связи с политическими и социальными условиями от античности до наших дней СОДЕРЖАНИЕ Книга 1. Часть 1. Досократики Предисловие автора Введение Глава. 1 Возникновение греческой цивилизации Глава. 2 М...
13170. СТРУКТУРА СУБЪЕКТИВНОГО ГРАЖДАНСКОГО ПРАВА 602.5 KB
  А.В. ВЛАСОВА СТРУКТУРА СУБЪЕКТИВНОГО ГРАЖДАНСКОГО ПРАВА ПРЕДИСЛОВИЕ Российская Федерация находится на этапе становления развитой рыночной экономики. Новые модели экономических отношений требуют эффективного правового обеспечения. По этой причине в...
13171. ВНЕШНЕПОЛИТИЧЕСКАЯ ДОКТРИНА СТАЛИНА 721.5 KB
  Михаил Александров ВНЕШНЕПОЛИТИЧЕСКАЯ ДОКТРИНА СТАЛИНА СОДЕРЖАНИЕ Предисловие Глава 1. Истоки внешнеполитической философии Глава 2. Опыт китайской стратегии Глава 3. Формирование внешнеполитической доктрины Заключение ПРЕДИСЛОВИЕ Личность Сталина
13172. СОВЕРШЕНСТВОВАНИЕ ПЕНСИОННОЙ СИСТЕМЫ СТРАНЫ. ПЕНСИОННЫЙ ФОНД РФ 685.5 KB
  ДИПЛОМНЫЙ ПРОЕКТ СОВЕРШЕНСТВОВАНИЕ ПЕНСИОННОЙ СИСТЕМЫ СТРАНЫ. ПЕНСИОННЫЙ ФОНД РФ Оглавление Введение3 Глава 1. Пенсионный фонд Российской Федерации: теоретические и правовые аспе