Читайте также:
|
|
После обычной директивы препроцессора #include для ввода/вывода и директивы using, указан прототип ф-ии power(). Если мы уберем прототип функции и перекомпилируем программу, то компилятор не сможет правильно обработать обращения к нашей функции и сообщит об ошибках.
Мы использовали ключевое слово void в функции main(), чтобы показать, что список параметров пуст, хотя можно и не писать ничего в скобках в этом случае.
Как мы знаем, ключевое слово void может использоваться как тип возвращаемого значения, в случае когда никакого значения не возвращается. Если мы указали возвращаемый функцией тип void, то в операторе return указывать какое-либо значение нельзя
Мы будем почти правы, если скажем, что использовать функции очень просто. Например, чтобы вычислить 5.03 с помощью ф-ии power() и сохранить результат в переменной y, мы написали:
y = power(5.0, 3);Здесь значения 5.0 и 3 называются аргументами (или фактическими параметрами). Мы передали в функцию константы, но на из месте могли бы быть любые выражения, в конечном счете продуцирующие корректный тип. Эти аргументы подставляются вместо параметров x и n, которые использованы в определении функции. Вычисления выполняются для этих значений, затем копия результата, 125, будет возвращена в вызывающую функцию, main(), которая сохранит его в переменной y. Затем мы выводим значение y на экран:
cout << endl << "5.0 cubed = " << y;Следующий вызов нашей функции осуществлен в операторе вывода,
cout << endl << "3.0 cubed = " << power(3.0, index); // Outputting return valueтак, что возвращаемое значение передается непосредственно в выходной поток. Первый аргумент – константа, второй – переменная.
Далее мы используем функцию power() в операторе:
// использование функции в качестве аргумента x = power(x, power(2.0, 2.0));Здесь функция вызывается дважды. Первый вызов там, где он вернет значение, которое будет аргументом для второго вызова. Хотя оба аргумента при первом вызове функции указаны как 2.0, в действительности функция будет вызвана (в соответствии с прототипом) при значении второго аргумента, равном 2. Компилятор сначала превратит double в int, т. к., ему известен прототип
double power(double x, int n); // Прототип функцииЗаметим, что лучше обеспечивать явное преобразование типа.
Далее, выполняемые действия аналогичны и очевидны.
Опять же заметим, что мы могли бы написать код, используя static_cast, чтобы сделать код абсолютно понятным:
x = power(x, static_cast<int>(power(2.0, static_cast<int>(2.0))));Дата добавления: 2015-11-16; просмотров: 40 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Объединения (union). | | | Проверка – Передача по значению |