4968

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

Реферат

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

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

Русский

2012-11-30

30.97 KB

3 чел.

Полиморфизм

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

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

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

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

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

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

- шаблоны

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

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

Синтаксис операции похож на синтаксис обычной функции. Главным отличием операции от обычной функции является использование в качестве имени ключевого слова 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");

   

}


 

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

37997. Компьютерные информационные системы бухгалтерского учета 2.55 MB
  Одному из продавцов выдать под отчет некоторую сумму наличными. Оформить авансовый отчет по выданной сумме заполнив лицевую и оборотную сторону отчета. В случае оформления поступления денежных средств от покупателя или комиссионера документ ПКО может быть выписан на основании документов Реализация товаров и услуг или Отчет комиссионера. В случае оформления операции по выдаче денежных средств подотчетному лицу устанавливается вид операции Выдача денежных средств подотчетнику.
37999. Українсько - Австрійські двосторонні відносини 71.17 KB
  На відміну від багатьох інших західних держав Австрія не чекаючи референдуму 1 грудня одразу ж стала розвивати політичні контакти з українським керівництвом. З часом у розвитку політичних відносин настав певний спад відчувалася їх явна стагнація що значною мірою позначилося і на інших сферах зокрема на розбудові договірноправової бази: Україна і Австрія вирішували ряд важливих для себе проблем внутрішнього і зовнішнього характеру. У рамках саміту глав урядів країнчленів ЦЄІ у листопаді 1996 року у Граці Австрія відбулась зустріч і...
38000. Медико-тактическая характеристика очагов поражения при авариях на АЭС 99 KB
  Ядерная энергия основана на использовании трех делящихся радионук-лидов: уран-235 - естественный элемент, два других - плутоний-239 и уран-233 получают искусственным путем в процессе ядерного топливного цикла. На всех этапах ядерного топливного цикла, начиная с добычи урановой руды, её обогащения
38001. ИЗУЧЕНИЕ ОСНОВНЫХ ЗАКОНОВ ФОТОЭФФЕКТА И ИЗМЕРЕНИЕ ПОСТОЯННОЙ ПЛАНКА 68.4 KB
  Введение Постоянная Планка h играет в квантовой физике такую же роль как скорость света с в релятивистской физике. В начале XX века была создана так называемая старая квантовая теория в основе которой лежат гипотеза Планка о дискретном характере испускания и поглощения света осциллятором введенное Эйнштейном представление о квантах света фотонах и его уравнение фотоэффекта построенная Бором теория простейших атомов. Внешний фотоэффект Фотоэффектом называется освобождение полное или частичное электрона от связей с атомами и...
38002. ИЗУЧЕНИЕ ЗАКОНОВ ТЕПЛОВОГО ИЗЛУЧЕНИЯ 312.5 KB
  Краткие теоретические сведения Для абсолютно чёрного тела АЧТ т. тела для которого поглощательная способность справедлив закон Стефана Больцмана: 1 где R – энергетическая светимость полная или интегральная испускательная способность характеризующая тепловое излучение тела а Т – его температура – постоянная Стефана–Больцмана. В то же время для любого тела где – испускательная способность тела. В соответствии с законом Кирхгофа 2 а определяется формулой Планка: 3 Спектр теплового...
38003. ИЗУЧЕНИЕ СПЕКТРА АТОМА ВОДОРОДА 1.03 MB
  состоят из отдельных узких спектральных линий. Частоты длины волн и интенсивности спектральных линий определяются строением излучающего атома и являются строго индивидуальными – каждый сорт атомов имеет только ему присущий спектр. Частоты линий этой серии определяются формулой 3 Спектральные линии серии Бальмера принято обозначать буквой H с индексом в порядке возрастания числа n и соответственно уменьшения длины волны λ : и т. В данной работе измеряются длины волн нескольких бальмеровских линий атомарного водорода их...