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");

   

}


 

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

33729. Международное товарищество рабочих 134.79 KB
  Деятельность Маркса и Энгельса в 50-х годах В предвидении нового подъема рабочего движения Маркс и Энгельс приступили к собиранию сил рабочего класса, ослабленных поражениями и преследованиями, и занялись обобщением опыта недавно пройденного революционного пути
33730. Осуществление органами МСУ отдельных государственных полномочий 28 KB
  Порядок наделения органов местного самоуправления отдельными государственными полномочиями: Полномочия органов местного самоуправления установленные федеральными законами и законами субъектов Российской Федерации по вопросам не отнесенным к вопросам местного значения являются отдельными государственными полномочиями передаваемыми для осуществления органам местного самоуправления. Наделение органов местного самоуправления отдельными государственными полномочиями Российской Федерации осуществляется федеральными законами отдельными...
33731. Ответственность органов местного самоуправления и должностных лиц местного самоуправления 36 KB
  Ответственность органов местного самоуправления и должностных лиц местного самоуправления перед государством наступает на основании решения соответствующего суда в случае нарушения ими Конституции Российской Федерации федеральных конституционных законов федеральных законов конституции устава законов субъекта Российской Федерации устава муниципального образования а также в случае ненадлежащего осуществления указанными органами и должностными лицами переданных им отдельных государственных полномочий. В случае если соответствующим судом...
33732. Государственная гражданская служба: понятие, принципы, порядок прохождения 33.5 KB
  Согласно ФЗ N 79 от 27 июля 2004 года О государственной гражданской службе в РФ Государственная гражданская служба Российской Федерации вид государственной службы представляющей собой профессиональную служебную деятельность граждан Российской Федерации на должностях государственной гражданской службы Российской Федерации по обеспечению исполнения полномочий федеральных государственных органов государственных органов субъектов Российской Федерации лиц замещающих государственные должности Российской Федерации и лиц замещающих...
33733. Понятие трудового договора. Сторона трудового договора. Заключение и расторжение трудового договора 22 KB
  Понятие трудового договора. Сторона трудового договора. Заключение и расторжение трудового договора. Трудовому договору посвящена часть третья раздел третий трудового кодекса РФ.
33734. Право собственности: содержание, формы, объекты. Бремы и риск собственника. Основания возникновения и прекращения права собственности. Осуществление права государственной и муниципальной собственности 37.5 KB
  Право собственности: содержание формы объекты. Основания возникновения и прекращения права собственности. Осуществление права государственной и муниципальной собственности. Содержание права собственности Собственнику принадлежат права владения пользования и распоряжения своим имуществом.
33735. Гражданско-правовой договор: понятие, содержание и форма. Виды договоров, порядок заключения, изменения и прекращения гражданско-правовых договоров 91.5 KB
  Граждане и юридические лица свободны в заключении договора. Понуждение к заключению договора не допускается за исключением случаев когда обязанность заключить договор предусмотрена настоящим Кодексом законом или добровольно принятым обязательством. К отношениям сторон по смешанному договору применяются в соответствующих частях правила о договорах элементы которых содержатся в смешанном договоре если иное не вытекает из соглашения сторон или существа смешанного договора. Условия договора определяются по усмотрению сторон.
33736. Понятие и состав административных правонарушений. Административная ответственность и её виды. Производство по делам об административных правонарушениях 48.5 KB
  Понятие и состав административных правонарушений. Производство по делам об административных правонарушениях. Административное правонарушение противоправное виновное действие бездействие физического или юридического лица за которое Кодексом РФ об административных правонарушениях установлена административная ответственность. Предупреждение административный штраф лишение специального права предоставленного физическому лицу административный арест и дисквалификация могут устанавливаться и применяться только в качестве основных...
33737. Территориальные принципы организации местного самоуправления 36 KB
  Территории с низкой плотностью сельского населения; 2 территории всех поселений за исключением территорий городских округов а также возникающие на территориях с низкой плотностью населения межселенные территории входят в состав муниципальных районов; 3 территорию поселения составляют исторически сложившиеся земли населенных пунктов прилегающие к ним земли общего пользования территории традиционного природопользования населения соответствующего поселения рекреационные земли земли для развития поселения; 4 в состав территории поселения...