рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ПЕРЕГРУЖЕННЫЕ ФУНКЦИИ.

ПЕРЕГРУЖЕННЫЕ ФУНКЦИИ. - раздел Философия, Лекция 1. Объектно-ориентированное программирование – это новый подход к программированию. Объектно- ориентированные языки обладают свойством   Перегрузкой Называют Практику Придания Функции Более Чем Одно...

 

Перегрузкой называют практику придания функции более чем одного значения. Этот термин означает, что в коде программы существует две различные по содержанию, но одинаковые по названию функции. Для того, чтобы понять что такое перегруженные функции приведем пример глаголов русского, языка которые так же можно было бы назвать “перегруженными”.

Например:

играть на пианино

играть словами

играть игрушкой

играть на бирже

То есть в данном случае глагол играть, написанный везде одинаково в зависимости от контекста принимает понимается нами по-разному. В объектно- ориентированном программировании простота очень важна чем меньше нужно знать о системе и ее использовании тем лучше. То же касается и работы с функциями. Чем меньше деталей нужно указывать при вызове функции тем лучше. Рассмотрим функцию Write, которая принимает аргумент и отображает его в типизированной форме на экране. Было бы прекрасно если бы одна и та же функция могла работать с любым типом аргументов. Это становится возможным благодаря использованию перегруженных функций. При вызове такой функции компилятор видит типы всех аргументов используемых в списке параметров. каждая функция определяется отдельно от других функций и отличается от них количеством и типом принимаемых параметров (В нашем случае функции различаются только типом принимаемых параметров) Говорят что функция перегружена если ее идентификатор ассоциируется более чем с одной функцией

Например

Write(“Нужно вывести строку”);

Write(1589);// Выводим число типа integer

Write(3.14159);// Выводим число типа float

Опишем используемые функции

void Write(char stroka[])

{

prinf(“%s”,stroka[]);

}

void Write(int chislo)

{

prinf(“%i”,chislo);

}

void Write(float chislo)

{

prinf(“%f”,chislo);

}

 


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

void error(int); и long error(int);

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

 

Задания для самоконтроля:

 

1. Что будет выведено на экран в результате работы следующей программы?

#include <iostream.h>

void summ(int &i)

{

i=i+1;

}

void summ(double &x)

{

x=x+1;

}

void summ(char &c)

{

c=c+1;

}

main()

{

char c='A';int i=10; double x=10.2;

cout<<"n начальные значения переменных:";

cout<<" i="<<i;

cout<<" c="<<c;

cout<<" x="<<x;

summ(i); summ(c); summ(x);

cout<<"n значения переменных после вызова функций:";

cout<<" i="<<i<<" c="<<с<<" x="<<x;

}

 

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


– Конец работы –

Эта тема принадлежит разделу:

Лекция 1. Объектно-ориентированное программирование – это новый подход к программированию. Объектно- ориентированные языки обладают свойством

ВВЕДЕНИЕ... Приступая к изучению более сложных конструкций языка С следует прежде всего повторить тот материал который был...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ПЕРЕГРУЖЕННЫЕ ФУНКЦИИ.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Имя_объекта.имя_элемента
x1.real=dim[3].real=1.45;   Класс может иметь столько объектов сколько необходимо, так же как и любая функция. Объекты могут быть любого тип

Имя объекта.имя функции();
Пример: #include<iostream.h> class rec { private: double len; double wid; public: double Len(){ return len/100;}

Наследование.
  В объектно- ориентированном программировании на основе уже существующих классов можно строить производные классы. Наследование означает, что производный класс, который называется кл

Директивы препроцессора.
  Препроцессор(макропроцессор) - это составная часть стандартного пакета языка Си, которая обрабатывает исходный текст программы до того, как он пройдет через компиля

Включение файлов.
  Директива #include включает в текст программы содержимое указанного файла. Эта директива имеет две формы:   #include "имя файла&

Условная компиляция.
  Условные конструкции препроцессора позволяют компилировать или пропускать часть программы в зависимости от выполнения некоторого условия. Условие может принимать одну из описываемых

ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ТИПОВ ДАННЫХ.
  Беззнаковые данные хранятся в оперативной памяти просто, чтобы узнать какое число хранится в данном байте или в слове необходимо выписать значения всех его битов и считать, что это

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

Аргументы функции main()
  Функция main, с которой начинается выполнение программы на языке СИ, может быть определена с параметрами, которые передаются из внешнего окружения, например, из командной строки. Во

Область действия и область видимости переменных.
  В языке C++ каждая функция это отдельный блок программы. Попасть в тело функции можно только с помощью вызова данной функции, то есть нельзя оператором безусловного перехода goto пе

Модификаторы переменных.
  В языке C++ имеется несколько модификаторов которые изменяют область действия и время жизни переменных     Модификаторы &nb

Модификатор тип_переменной имя_переменной
Все переменные в программе характеризуются не только типом, но и классом памяти. В языке Си существует четыре класса памяти: автоматический (automatic), регистровый(registe

Время жизни переменных.
  Если программист не указал иного, то объект создается, когда встречается его описание, и уничтожается, когда его имя выходит из области видимости, Объекты с глобальными именами созд

ФУНКЦИИ С ПЕРЕМЕННЫМ ЧИСЛОМ ПАРАМЕТРОВ.
  При вызове функции с переменным числом параметров в вызове этой функции задается любое требуемое число аргументов. В объявлении и определении такой функции переменное число аргумент

УКАЗАТЕЛЬ НА ФУНКЦИЮ.
  Основными характеристиками функции является тип возвращаемого значения и список типов формальных параметров. Подобно тому, как имена переменных никаким образом не влияют на их тип,

Начальные установки графики.
  Перед началом работы с графикой, используется функция initgraph(), которая инициализирует графическую систему загружает графический драйвер и переводит систему в графический режим.

Функция line().
  Функция line() - вычерчивает линию между двумя заданными точками принадлежит библиотеке graphics.h Общий вид вызова: void line(int x1, int y1, int x2, int

Функция lineto().
  Функция lineto() чертит линию от текущей позиции курсора в точку с координатами (x,y)Расположена в библиотеке graphics.h Общий вид вызова функции: void li

Функция circle().
  Функция circle() вычерчивает окружность заданного радиуса из заданного центра. Функция находится в графической библиотеке graphics.h В качестве параметров передаются коорди

Функция rectangle ()
  Назначение функции rectangle () в вычерчивании прямоугольника. Функция rectangle () вычерчивает прямоугольник, используя при этом текущие тип линии, толщину и цвет

ФОРМАТИРОВАННЫЙ ПОТОКОВЫЙ ВВОД-ВЫВОД.
  В примерах программ рассмотренных выше, использовались операции помещения в поток << , например в стандартный поток вывода cout и операцией извлечения из потока >>, прим

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги