Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lect10.pdf
Скачиваний:
4
Добавлен:
06.02.2016
Размер:
223.76 Кб
Скачать

10. Перегрузка функций и методов.

«Объектно-ориентированное программирование»

доцентПриваловМ.В.

Донецк,ДонНТУ,2011

Перегрузка функций

Перегрузкафункций - это создание нескольких функций водномпространстве имен, которыеимеют одинаковые имена.

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

Пример перегрузки

#include <stdio.h>

void Print(int number)

{

printf("%d", number);

}

void Print(double number)

{

printf("%.15f", number);

}

void Print(const char* str)

{

printf("%s", str);

}

Пример перегрузки

int main()

{

Print(1);

printf("\n");

Print(8.0/3);

printf("\n");

Print("Hello World\n"); return 0;

}

Функциисразличным количествомаргументов

Функциисодним именем могут иметь различноеколичество аргументов.

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

Функциисразличным

количествомаргументов

void Print(char ch) { putchar(ch);

}

void Print(char ch, int count) { while (count--) {

putchar(ch);

}

}

int main() { Print('!'); putchar('\n'); Print('!', 5); putchar('\n'); return 0;

}

Выборнужной функции

Выборпроизводится путём анализа сигнатуры функции

Всигнатуру входят:

порядокитипыпараметров

модификаторconst длянестатическихфункций

модификаторvolatile

Типвозвращаемого значения невходит в сигнатуру!

Правиласопоставления параметров

Правила сопоставления имеют следующие приоритеты (в порядке убывания):

Точноесопоставление

Сопоставлениесиспользованиемстандартных целочисленныхпреобразованийсплавающей запятой

charвint, short вint, float в double

Сопоставлениесиспользованиемстандартных преобразований

int вdouble,derived* вbase*, unsigned вint

Сопоставлениесиспользованиеммноготочия...

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]