91 |
С т р а н и ц а
Упражнение
В качестве упражнения выясните, что не так с этим кодом:
#include
using namespace std;
void myFunction()
{
cout << "
Вы вызывали?" << endl;
} int main()
{
cout << "
Я сейчас собираюсь вызвать myFunction." << endl;
myFunction;
}
Решение
Верный ответ на эту проблему заключается в том, что вызов
myFunction
(на
последней строке
main()
) не сопровождается круглыми скобками. Каждый вызов
функции должен сопровождаться круглыми скобками. Последняя строка
main()
должна быть записана как
myFunction();
,а не просто
myFunction
.
Функции с аргументами
Как мы можем расширить функцию
printRoad()
,чтобы выводить дорогу с заданным
количеством сегментов? Ответ прост. Мы можем позволить функции
printRoad()
принимать параметр, названный
numSegments
, чтобы выводить определённое
количество сегментов дороги.
Следующий отрывок кода показывает, как это будет выглядеть:
void printRoad(int numSegments)
{
//
используйте цикл for, чтобы вывести дорожные сегменты numSegments
for( int i = 0; i < numSegments; i++)
{
cout << "* *" << endl;
cout << "* | *" << endl;
cout << "* | *" << endl;
cout << "* *" << endl;
}
}
Следующее изображение показывает анатомию функции принимающей аргумент:
параметр
92 |
С т р а н и ц а
Вызовите эту новую версию
printRoad()
, запрашивая её отобразить четыре сегмента:
printRoad( 4 ); // вызов функции
Цифра 4 между скобок вызываемой
функции в предыдущем утверждении
назначается переменной
numSegments
функции
printRoad(int numSegments)
. Вот как
передаётся значение 4 к
numSegments
:
Как printRoad(4) присваивает значение 4 переменной numSegment
Так при вызове printRoad() в скобках присваивается значение для numSegments.
Достарыңызбен бөлісу: