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

Функция, возвращающая ссылку как результат своей работы

int x; // глобальная переменная

int& setx(); // прототип функции

int main()

{ cout << "x=" << x << endl; // вывод значения глобальной переменной

setx() = 92; // функция вызывается из левой части оператора присваивания

cout << "x=" << x << endl; // вывод нового значения глобальной переменной

_getch();

return 0;

}

//--------------------------------------------------------------

int& setx()

{

return x; // возвращается ссылка на х

}

Результат работы:

x=0

x=92

Демонстрация inline-функций

inline double lbstokg (float pounds)

// функция конвертирует фунты в килограммы

{

return 0.453592 * pounds;

}

//--------------------------------------------------------------

int main()

{

float lbs;

cout << "\n Enter your weight in pounds: ";

cin >> lbs;

cout << "Your weight in kilograms is " << lbstokg (lbs)

<< endl;

_getch();

return 0;

}

Результаты работы

Enter your weight in pounds: 3.5

Your weight in kilograms is 1.58757

Демонстрация функции с параметрами по умолчанию

void repchar(char='*', int=45);

//прототип функции с параметрами по умолчанию

int main()

{

repchar(); //вызов функции с двумя аргументами по умолчанию

//печать 45 символов «звездочка»

repchar('='); //вызов функции с заданным первым аргументом

//печать 45 знаков «равно»

repchar('+', 30); //вызов функции с двумя заданными аргументами

//печать 30 знаков «плюс»

_getch();

return 0;

}

//--------------------------------------------------------------

void repchar(char ch, int n)

{

for(int j=0; j<n; j++)

cout << ch;

cout << endl;

}

Результаты работы:

*********************************************

=============================================

++++++++++++++++++++++++++++++

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

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

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

Рассмотрим пример программы, в которой перегружаются две функции с равным числом аргументов и имеющие одинаковые имена. Первая функция int func (int a, int b) определяет сумму двух целых чисел a и b, вторая - float func (float a, float b) – разность двух чисел с плавающей точкой:

int func (int a, int b); //прототип функции вычисления суммы

float func (float a, float b); //прототип функции вычисления разности

//--------------------------------------------------------------

int main ()

{int a=25, b=40;

float c=2.45f, d=6.15f;

cout << "\n summa=" << func (a,b); //вызов функции с аргументами целого типа

cout << "\n raznost=" << func (c,d); //вызов функции с аргументами типа float

_getch();

return 0;

}

//--------------------------------------------------------------

int func(int a, int b) //определение функции вычисления суммы

{return (a+b);

}

//--------------------------------------------------------------

float func(float a, float b) //определение функции вычисления разности

{return (a-b);

}

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