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

   

}


 

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

38499. Организационная культура предприятия на примере ООО РИА «Веда-Консультант» 575 KB
  Процесс формирования и развития организационной культуры очень интересен так как появляется возможность регулировать поведение персонала на основе тех ценностей которые актуальны для организации. Все больше руководителей и менеджеров по персоналу сегодня задумываются о необходимости целенаправленного формирования организационной культуры. При этом управление не только соответствует культуре организации сильно зависит от нее но и оказывает влияние на формирование и адаптацию культуры к новой стратегии. Формирование организационной культуры...
38500. Правовая аномия в Украинском обществе 210 KB
  В условиях провозглашенной политическим руководством Украины курса на модернизацию вырисовываются контуры радикальной перестройки сфер общественной жизни которые требуют немалых усилий по преодолению правовой аномии в украинском обществе как массовых неправовых практик населения и маргинализации ценности права. Специфика правовой аномии в украинском обществе не может быть списана только за счет издержек социальной транзиции или концепции культурной самобытности выражающейся в архетипах социальной анархии или имманентного бесправия....
38501. Бухгалтерский учет и аудит затрат на производство продукции (на примере ОАО «Альфа») 862.5 KB
  Для принятия верных решений, обеспечивающих максимальное повышение прибыли и устойчивости предприятия на рынке необходима полная и достоверная информация о затратах, отражаемая в бухгалтерском учете и отчетности. Поэтому, именно учет и аудит затрат на производство продукции является на предприятии одним из важнейших объектов процесса управления.
38502. Особенности художественно-мифологического пространства Дж.Р.Р. Толкина (Властелин колец) 425.5 KB
  В современной лингвистике разработан многосторонний и углублённый подход к анализу художественного текста в рамках которого немаловажную роль играют аспекты когнитивной лингвистики понятие концепта концептуальный анализ. Принципиальная переводимость текста – свидетельство существенного сходства коцептосфер народов [Попова Стернин 1999: 26]. Здесь необходимо отметить что образные и концептуальные признаки выявленные в результате герменевтического анализа художественного текста являются уместными только в пределах данного...
38503. Озеленение отдельных контуров санатория-профилактория ФГУ ЦР ФСС «Вятские Увалы» 6.61 MB
  2 Подбор растений для каменистого сада и характеристика хвойных пород 105 4. Зеленые насаждения с использованием красивоцветущих декоративных растений выполняют эстетическую роль. высокая художественная выразительность зеленых посадок как в открытом так и закрытом грунте их положительное эмоциональное воздействие на человека находятся в прямой зависимости от умело подобранного и разнообразного ассортимента декоративных растений. Строгая геометричность планировки подчеркивается с помощью...
38505. Реконструкция системы электроснабжения центральной части с. Идринское Идринского района 2.03 MB
  Расчет ТП1 линии Л2. Расчет полной S мощности на участках линии определяется по формуле: 1.62кВт; Расчеты показаны только для линии Л1 на трансформаторной подстанции ТП1 а результаты расчетов для остальных линий будут снесены в таблицу 1. Определяем токи на участках линии по формуле 1.
38506. Обработка отверстий детали «переводник шлицевой» без применения технологической оснастки 1.59 MB
  В настоящее время для обработки отверстий применяют различного рода приспособления. При обработке отверстий без использования оснастки возникают такие условия что настройка на операцию обработки внутренних шпоночных пазов происходит с увеличением нормы времени штучное время. Это объясняется тем что количество установок детали ее переустановок время на настройку операции на различных приспособлениях будет различным в зависимости от быстродействия рассматриваемой технологической оснастки. Определение основного времени...