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



Nbsp; Программирование на языке Visual C++  

Функции

(http://msdn.microsoft.com/ru-ru/library/c4d5ssht.aspx)

(http://msdn.microsoft.com/ru-ru/library/9w92dxk3.aspx)

 

 
Рис.6.1. Использование символа «Предопределенный процесс» в схемах алгоритмов для обозначения обращения к подпрограмме Рис.6.2. Использование символа «Терминатор» в схемах алгоритмов для обозначения начала и конца подпрограммы

 

Определение функций

 

Синтаксис определения функции имеет следующий вид:

 

Тип ИмяФункции([Список_формальных_параметров])

{ Операторы_тела_функции }

 

Для объявления функции используется ее прототип, который представляет собой заголовок функции, завершающийся точкой с запятой.

 

Тип ИмяФункции([Список_формальных_параметров]);

 

Пример 6.1. Демонстрация некоторых способов использования функции power() при передаче ей аргументов различными способами.

 

#include "stdafx.h"

using namespace System;

Double power(double x, int n);    // Прототип функции.

int main(array<System::String^>^ args) {

int index = 3; // Показатель степени.

double х = 3.0; // Переменная, возводимая в степень.

Использование констант в качестве аргументов.

double у = power(5.0, 3);

Console::WriteLine("5.0 в кубе = {0}", у);

Вывод возвращенного значения.

Console::WriteLine("3.0 в кубе = {0}", power(3.0, index));

Использование функции в качестве аргумента

х = power(х, static_cast<int>(power(2.0, 2.0)));

Console::WriteLine("х = {0}", х);

Console::ReadLine();

return 0;

}

// Функция для возведения х в степень n, где n >= 0.

double power(double x, int n) {   // Заголовок функции.

Тело функции.

  double result = 1.0;

  for (int i = 1; i <= n; i++) // Вычисление

      result *= x;           // функции.

Return result; // Результат, возвращаемый функцией.

}

/* Вывод:

5.0 в кубе = 125

3.0 в кубе = 27

х = 81

*/

 

Пример 6.2. Определение функций и их вызов из программы для выполнения математических операций с целыми числами.

 

#include "stdafx.h"

using namespace System;

int SumNumbers(int number1, int number2) {

 return number1 + number2;

}

int SquareNumber(int number) {

 return number * number;

}

int main(array<System::String^>^ args) {

  int result = SquareNumber(SumNumbers(1, 2));

// или int result = SumNumbers(1, 2);

// result = SquareNumber(result);

Console::WriteLine("(1+2)^2={0}", result);  // Вывод: (1+2)^2=9

Console::ReadLine();

return 0;

}

 

 

Вызов функции и передача параметров

 

Способы передачи параметров

Пример 6.3. Применение различных способов передачи параметров при использовании функций.

 

#include "stdafx.h"

using namespace System;

// Передача параметра по значению.

void SquareVal(int valParam) {

valParam *= valParam;

return;

}

// Передача параметра по ссылке.

void SquareRef(int& refParam) {

refParam *= refParam;

return;

}

// Передача параметра по ссылке (с иниц-ей параметра в функции)

void strCurrentDate(String^& curDate) {

DateTime dt = DateTime::Now;

curDate = dt.Date.ToString("dd.MM.yyyy");

return;

}

int main(array<System::String^>^ args) {

int arg = 4;

SquareVal(arg);     // Передача параметра по значению

Console::WriteLine(arg); // Вывод: 4 (параметр не изменился)

SquareRef(arg);     // Передача параметра по ссылке

Console::WriteLine(arg); // Вывод: 16 (параметр изменился)

String^ cd;

StrCurrentDate(cd); // Передача параметра по ссылке

Console::WriteLine(cd); // Вывод: 19.12.2011

Console::ReadLine();

return 0;

}

 

Функции с побочным эффектом

Например, если функция  int f(int& a)  является функцией с побочным эффектом, то выражение а + f(а) в общем случае не эквивалентно выражению f(а) + а .

 

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

Пример 6.4. Использование необязательных параметров при вызове функции, вычисляющей сумму двух, трех или четырех чисел (работает, начиная с версии Visual C++ 2010).

 

#include "stdafx.h"

using namespace System;

int Sum(int a, int b, int c=0, int d=0) {

return a + b + c + d;

}

int main(array<System::String^>^ args) {

int x=11, y=13, z=17, p=19;


Дата добавления: 2018-06-01; просмотров: 217; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!