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

   

}


 

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

25488. Органы социальной защиты населения субъектов РФ 15.21 KB
  Среди новых технологий нашедших практическое применение в социальной работе можно выделить включение в социальнопрофилактическую воспитательную работу с пожилыми клиентами специализированных программ сдерживания темпов биологического старения. Органы социальной защиты населения субъектов РФ активизировали работу по организации реабилитационных центров и отделений для инвалидов молодого возраста. Перед органами социальной защиты населения поставлена задача обеспечения условий для социальной интеграции молодых умственно отсталых инвалидов в...
25492. Центр социальной помощи семье и детям нормативно-правовая база, структура и основные направления деятельности 19.13 KB
  Центр социальной помощи семье и детям нормативноправовая база структура и основные направления деятельности Ведущее место среди учреждений социальной службы призваны занять территориальные центры социальной помощи семье и детям.2000 №53 Об утверждении Методических рекомендаций по организации деятельности государственного муниципального учреждения Центр социальной помощи семье и детям было рекомендовано создавать Центры социальной помощи семье и детям в целях оказания семьям детям и отдельным гражданам попавшим в трудную жизненную...
25493. Повышение активности издательской деятельности 11.12 KB
  В газете Культура и жизнь регулярно публиковались обзоры печати. Газета просуществовала 4 года. Анализ различного типа газет проведенный ЦК ВКПб показал что профессиональный и культурный уровень большинства из них был низким. Редакции некоторых газет не располагали необходимой информацией о положении дел на местах уходили от проблем местной жизни.
25494. Журналистика после войны 11.03 KB
  Газеты печатали письма новоселов рассказывали об их трудовом порыве о трудностях освоения целины. Практически во всех центральных газетах и изданиях районов освоения целинных земель стали постоянными такие рубрики и подборки: Письма новоселов На целинных землях и др.
25495. Социальные службы как институциональная форма социальной работы. Учреждения социального обслуживания: их виды, структура и содержание деятельности. Региональная специфика 14.32 KB
  Социальные службы как институциональная форма социальной работы. Учреждения социального обслуживания: их виды структура и содержание деятельности. Региональная специфика Социальное обслуживание деятельность социальных служб по социальной поддержке оказание социальнобытовой социальномедицинской психологопедагогической социальноправовой и материальной помощи провед соц. Прпы соцоблс: адресность деступн добровольн гумманость приоритет предостав соц.