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

С++ для начинающих

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

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

13.11.2010, 00:22. Просмотров 2664. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста...


Лабораторная работа № 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++
Разработать функцию f(x) , которая возвращает младшую цифру натурального числа x . Вычислить с ее помощью значение выражения z= f(a) +...

Перегрузка функций - C++
Моя последняя лаба=( Светлые умы, помогите... Выполнить задания пятой и шестой лабораторной работы, оформив каждый пункт задания в виде...

Перегрузка функций - C++
АТД - множество с элементами типа int. Дополнительно перегрузить следующие операции: «+» - добавить элемент в множество(типа int +...

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

Перегрузка функций - C++
Для одномерного массива из n вещественных элементов и од*номерного массива из n строк, найти соответственно: 1.1. Максимальный по модулю...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2010, 00:22
Привет! Вот еще темы с ответами:

перегрузка функций - C++
У меня есть структура Студенты. в ней есть Имя студента, его Бал аттестата и Возраст. Подскажите, плиз, как создать функцию add(); и...

Перегрузка функций - C++
Стало интересно из-за возможна перегрузка функций в программе на языке С++, с чем это связано, как реализовано внутри программы? Кто...

Перегрузка функций - C++
Задача такая: перегрузить * так чтобы время умножалось на число, и так чтобы число умножалось на время. Не могу понять как реализовать...

Перегрузка функций - C++
разработайте две версии функции F,заголовки которых выглядят следующим образом: 1) float F(float х); 2) void F (float x, float &amp;y); ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru