Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
Alexandr93
2 / 2 / 0
Регистрация: 09.11.2010
Сообщений: 65
13.11.2010, 00:22     Перегрузка функций #1
Помогите пожалуйста...


Лабораторная работа № 7
7.1. "Перегрузка функций в Си++"
Цель: Знакомство с организацией перегруженных функций в Си++.

1. Краткие теоретические сведения
Цель перегрузки состоит в том, чтобы функция с одним именем по разному выполнялась и возвращала разные значения при обращении к ней с различными типами и различным числом фактических параметров. Для обеспечения перегрузки функций необходимо для каждого имени функции определить сколько различных функций с ним связано.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream.h>
int max_element ( int n, int a[ ])
// находит максимальный элемент для массива типа int
{
int max=a[0];
for ( i=1; i<n; i++)
if (a[i]>max) max=a[i];
return max;
}
 
long max_element ( int n, long a[ ])
// находит максимальный элемент для массива типа long
{
long max=a[0];
for ( i=1; i<n; i++)
if (a[i]>max) max=a[i];
return max;
}
double max_element ( int n, double a[ ])
// находит максимальный элемент для массива типа double
{
double max=a[0];
for ( i=1; i<n; i++)
if (a[i]>max) max=a[i];
return max;
}
 
float max_element ( int n, float a[ ])
// находит максимальный элемент для массива типа float
{
float max=a[0];
for ( i=1; i<n; i++)
if (a[i]>max) max=a[i];
return max;
}
 
void main ( )
{
int x[]={10, 20, 30, 40, 50, 60};
long y[]={12L, 44L, 22L, 37L,30L};
. . . . . .
int m1=max_element(6, x );
long m2=max_element(5, y);
. . . . . 
}
2. Постановка задачи
Написать перегруженные функции и основную программу, которая их вызывает.


3. Варианты
7.
а) для деления целых чисел;
б) для деления комплексных чисел.

4. Содержание отчета
1. Постановка задачи для конкретного варианта.
2. Исходные данные.
3. Текст программы.
4. Результаты выполнения программы.


7.2. "Функции с переменным числом параметров"
Цель: Знакомство с организацией функций с переменным числом параметров.

1. Краткие теоретические сведения
В Си допустимы функции, у которых при компиляции не фиксируется число параметров, кроме того, может быть неизвестен и тип параметров. Количество и тип параметров становится известным только в момент вызова, когда явно задан список фактических параметров. Каждая функция с переменным числом параметров должна иметь хотя бы один обязательный параметр.
Определение функции с переменным числом параметров:
<тип><имя>(<явные параметры>, . . . )
После списка явных параметров ставится запятая, а затем многоточие, которое показывает, что дальнейший контроль соответствия количества и типов параметров при обработке вызова функции производить не нужно. Сложность заключается в определении начала и конца переменного списка параметров, поэтому каждая функция должна иметь механизм определения их количества и типов. Существует два подхода:
1 известен признак конца списка переменных параметров;
2 известно количество параметров, которое передается как обязательный параметр.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
int sum (int k, . . .)
{
int *p = &k; //настроили указатель на параметр k
int s=0;
for ( ; k!=0;k--)
s+=*(++p);
return s;
}
void main( )
{
cout<<”\nСумма(2,4,6)=<<sum(2,4,6); //находит сумму 4+6
cout<<”\nСумма(4,1,2,3,4)=<<sum(4,1,2,3,4); //находит сумму 1+2+3+4
}
Для доступа к списку параметров используется указатель *p типа int. Он устанавливается на начало списка параметров в памяти, а затем p перемещается по адресам фактических параметров (++p).

2. Постановка задачи
Решить указанную в варианте задачу, используя функции с переменным числом параметров.
3. Варианты
7.Написать функцию min с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double, тип параметров определяется с помощью первого параметра функции. Написать вызывающую функцию main, которая обращается к функции min не менее трех раз с количеством параметров 5, 10, 12.
4. Содержание отчета
1. Постановка задачи для конкретного варианта.
2. Исходные данные.
3. Текст программы.
4. Результаты выполнения программы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2010, 00:22     Перегрузка функций
Посмотрите здесь:

C++ Перегрузка функций
C++ Перегрузка функций в C++
Перегрузка функций C++
C++ Перегрузка функций
C++ Перегрузка функций. Реализация функций
C++ Перегрузка функций
C++ Перегрузка функций
C++ Перегрузка функций

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru