Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
20 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
144.50 kB
Просмотров:
84
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Дополнительные возможности при работе с пользовательскими функциями
№2 слайд
Содержание слайда: Параметры со значениями по умолчанию
Параметры со значениями по умолчанию
Чтобы упростить вызов функции, в ее заголовке можно указать значения параметров по умолчанию. Эти параметры должны быть последними в списке и при вызове функции аргументы для них могут опускаться. Если при вызове аргумент опущен, то должны отсутствовать и все аргументы, стоящие за ним, т.к. задавать значения по умолчанию можно только для последних параметров в списке функции.
№3 слайд
Содержание слайда: Значениями параметров по умолчанию могут быть константы или константные выражения.
Значениями параметров по умолчанию могут быть константы или константные выражения.
Параметры по умолчанию проходят проверку типа во время описания функции и вычисляются при вызове.
Пример функции, определяющей сумму от 2-х до 5-ти переменных:
. . .
int Sum (int a, int b, int c = 0, int d = 0, int e = 0) {
// 0 – умалчиваемые значения
return (a + b + c + d + e);
}
№4 слайд
Содержание слайда: void main ()
void main ()
{
int x1=1, x2=1, x3=1, x4=1, x5=1, y2, y3, y4, y5;
y2= Sum (x1, x2); // y2 = 2
// Работают все умалчиваемые значения;
y3= Sum (x1, x2, x3); // y3 = 3
// - два последних значения;
y4= Sum (x1, x2, x3, x4); // y4 = 4
// - одно последнее значение;
y5= Sum (x1, x2, x3, x4, x5); // y5 = 5
. . .
}
№5 слайд
Содержание слайда: Таким образом:
Таким образом:
1. Умалчиваемое значение аргумента функции задается при его объявлении в заголовке функции.
2. В начале списка указывают параметры, значения которых будут передаваться всегда.
3. При обращении пропуск умалчиваемых параметров в списке недопустим, т.е. для получения значения x1 + x2 + x3 + x5 вызов функции Sum (х1, х2, х3, х5); приведет к ошибочному результату.
Правильным будет обращение, например
y = Sum (x1, x2, x3, 0, x5);
№6 слайд
Содержание слайда: Перегрузка функций
Перегрузка функций
В языке С++ реализована возможность использования одного идентификатора для функций, выполняющих различные действия над различными типами данных, в результате чего можно использовать несколько функций с одним и тем же именем, но с разными списками параметров, как по количеству, так и по типу.
Такие функции называют перегруженными, а сам механизм – перегрузка функций.
Компилятор определяет, к какой из функций следует обратиться путем сравнения типов аргументов с типами параметров.
№7 слайд
Содержание слайда: Пример перегрузки функций
Пример перегрузки функций
Пример функции Fun с двумя параметрами х, у, работающей в зависимости от типа передава-емых аргументов, следующим образом:
– если тип параметров int, функция Fun складывает их значения и возвращает сумму;
– если тип параметров long, функция Fun перемножает их значения и возвращает произведение;
– если тип параметров double, функция Fun делит их значения и возвращает частное от деления.
№8 слайд
Содержание слайда: int Fun (int x, int y) {
return x + y;
}
long Fun (long x, long y) {
return x * y;
}
double Fun (double x, double y) {
return x / y;
}
№9 слайд
Содержание слайда: void main ()
void main ()
{
int a = 2, b = 3, s;
long i = 3, j = 4, pr;
double x = 10, y = 3, d;
s = Fun(a, b);
pr = Fun(i, j);
d = Fun(x, y),
cout << "\n sum = " << s << " pr = " << pr
<< " del = " << d << endl;
}
В результате получим:
sum = 5 pr = 12 del = 3.33333
№10 слайд
Содержание слайда: Понятие шаблона функции
Понятие шаблона функции
Механизм шаблонов – средство построения обобщенных определений функций, независи-мых от используемых типов данных. Их использование избавляет от необходимости дублировать код функции для различных типов данных, составляющих их параметры и возвращаемые результаты.
Компилятор по заданному в качестве аргумента типу данных на основе определения шаблона автоматически порождает соответствующие экземпляры функций.
№11 слайд
Содержание слайда: Формат шаблона функции:
Формат шаблона функции:
template Список параметров шаблона
Декларация функции;
Список параметров шаблона определяет набор типов. Каждый тип определяется словом class и является локальным типом данных в рамках функции. Список параметров не может быть пустым.
Декларация функции – обычное определение (или прототип) функции. В списке ее параметров необходимо упомянуть хотя бы один раз типы параметров из списка шаблона.
№12 слайд
Содержание слайда: Пример 1. Шаблон с единственным параметром
template < class T >
void fun (T par) {
код функции fun
}
Символ типа T можно использовать и для возвращаемого значения и для любых других объектов в коде функции.
№13 слайд
Содержание слайда: Функция может иметь любые типы параметров как параметризованные, так и стандартно декларированные.
Функция может иметь любые типы параметров как параметризованные, так и стандартно декларированные.
Пример 2. Шаблон функции с частично параметризованными параметрами:
template < class T >
void fun (T par, int x, int y) {
код функции fun
}
№14 слайд
Содержание слайда: Пример 3. Шаблон может иметь несколько параметризованных параметров с разными символическими идентификаторами:
template < class T2, class T1 >
void fun (T1 par1, T2 par2) {
код функции fun
}
Порядок следования идентификаторов параме-тров в заголовке функции может отличаться от их декларации в шаблоне.
№15 слайд
Содержание слайда: Пример нахождения максимума для разных типов аргументов:
#include <iostream.h>
template < class T >
T fun (T x, T y) {
return (x > y) ? x : y;
}
№16 слайд
Содержание слайда: void main()
void main()
{
int n = 2, m = 3;
double x = 7.5, y = 2.5;
cout << "Max (" << n << " , " << m << ") = "
<< fun (n, m) << endl;
cout << "Max (" << x << " , " << y << ") = "
<< fun (x, y) << endl;
}
Результат :
Max (2 , 3) = 3
Max (7.5 , 2.5) = 7.5
№17 слайд
Содержание слайда: Перегрузка шаблонов функций
Можно перегружать функции-шаблоны для неподходящих под данный код шаблона данных, т.к. их использование базируется, как и у обычных функций, на распознавании компилятором различий в списках их параметров.
№18 слайд
Содержание слайда: Пример использования преобразования шаблонов и специализированных функций:
Пример использования преобразования шаблонов и специализированных функций:
. . .
template < class T >
T max (T x, T y) {
return (x > y) ? x : y;
}
char* max (char* x, char* y) {
return ( strcmp (x, y) > 0) ? x : y;
}
№19 слайд
Содержание слайда: void main()
void main()
{
int a = 7, b = 5;
char c1 = 'a', c2 = 'z';
char s1[] = "one", s2[] = "two";
cout << "Max( " << a << " , " << b << ") = "
<< max(a, b) << endl;
cout << "Max( " << c1 << " , " << c2 << ") = "
<< max(c1, c2) << endl;
cout << "Max( " << s1 << " , " << s2 << ") = "
<< max(s1, s2) << endl;
}
№20 слайд
Содержание слайда: Результат :
Max ( 7 , 5 ) = 5
Max ( a , z ) = z
Max ( one , two ) = two