Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_с++.doc
Скачиваний:
14
Добавлен:
15.11.2018
Размер:
672.26 Кб
Скачать

Int main ( )

{

float а =1., b = 2., c = 3., x = 0.5, y;

cout << " Уведені всі аргументи " << endl;

y = ur ( x, a, b, c);

cout << " y = "<< y << endl;

cout << " Введені аргументи x, a, b " << endl;

y =ur ( x, a, b);

cout << " y = "<< y << endl;

cout << " Введений аргумент x " << endl;

y =ur ( x );

cout << " y = "<< y << endl;

}

// Функція обчислення квадратної функції

float ur ( float x, float a, float b, float c );

{

return a * x * x + b * x + c;

}

Результати виконання програми:

Уведено всі аргументи

y = 4.25

Уведені x, a і b

y = 1.25

Введено аргумент x

y = 0

5.2.5 Перевантаження функцій

У мові С++ можна використовувати так називане перевантаження функцій, тобто можливість визначати функції з тим самим ім'ям, але різним типом і кількістю формальних параметрів.

Список формальних аргументів називають сигнатурою функції.

Основне достоїнство перевантажених функцій  це можливість визначати кілька функцій з тим самим ім'ям, але з різними типами і числом параметрів.

Приклад 5.6 Зробити програмну реалізацію з використанням перевантаження функцій.

#include <iostream .h>

#include <string.h>

int funp (int x) // 1.

{ return x*x; }

int funp (unsigned x) // 2.

{ return -x*x; }

char funp (char x) // 3.

{ return x+3; }

int funp (int x, char *y) // 4.

{ return x*strlen ( y); }

int funp (int x , char y) // 5.

{ return x*y; }

float funp (float r) // 6.

{ return r*r; }

float funp (double r) // 7.

{ return r+r; }

main ( )

{

cout << funp(5) << endl ; // Буде 25

cout << funp ((unsigned)10) << endl ; // Буде 100

cout << funp ( 'а') << endl ; // Буде d

cout << funp (4,"abc") << endl ; // Буде 12

cout << funp ( 4 , 'а') << endl ; // Буде 388

cout << funp( (float5) 1.2)<< endl ; // Буде 1.44

cout << funp( double) 4.5) << endl ; // Буде 9

return 0;

}

У заголовку функції завжди вказується тип її імені, а в самій підпрограмі цьому імені повинне бути привласнене значення, що повертається в головну програму замість звертання до функції.

5.3 Контрольні питання

1. Що таке функція і яка її структура?

2. Що означає передача параметрів у функцію за значенням, за посиланням і за покажчиком?

3. Що таке локальні і глобальні змінні?

4. Як використовувати покажчики на функцію?

5. Які способи передачі і повернення результату обчислень функції?

6. Як використовувати одновимірні масиви як параметри функції?

7. Які особливості використання багатовимірних масивів як аргументи функції?

8. Чи можна обробляти у функції масиви змінної довжини?

9. Чи може функція передавати кілька результатів у місце виклику?

10. Що таке перевантаження функцій?