Привет, я надеялся, что смогу лучше понять несколько вещей, касающихся C ++. Мы изучаем функции, и я пропустил урок, и я думаю, что это был не тот класс, который я пропустил, потому что я так растерялся. У меня есть две проблемы, касающиеся четкого и краткого руководства и понимания терминов. Это был мой первый:
a) Напишите функцию C ++ с именем «product», которая вычисляет произведение двух целочисленных значений, переданных ей как. Функция принимает два входных аргумента и возвращает вычисленный ответ в качестве выходного параметра функции.
б) Напишите одну строку кода, которая может быть использована для вызова (вызова) этой функции.
Это второе: a) Напишите функцию C ++ с именем «product», которая вычисляет произведение двух целочисленных значений, переданных ей как. Функция принимает два входных аргумента и возвращает ответ продукта в результате выполнения функции.
б) Напишите одну строку кода, которая может быть использована для вызова (вызова) этой функции.
Поэтому я предполагаю, что второй должен быть примерно таким:
int product(int a, int b)
{ return a*b; }
и часть б как
соиЬ << «Произведение ваших двух чисел» << продукт (а, б);
Во-первых, я прав и в любом случае, что будет означать ответ возврата в качестве выходного параметра.
И пока я нахожусь, и вы чувствуете, что мне жаль меня, не могли бы вы сказать мне, следует ли мне использовать void вместо int, и, наконец, кто-то может объяснить лучше, что именно вернуть по ссылке. Я понимаю, что весь аспект должен иметь & в конце параметра и «технически», что он позволяет мне изменить его, а не просто вернуть его, но я надеялся на что-то более глубокое? Извините, что так нуждаюсь, но любая помощь будет принята с благодарностью. Спасибо
Линду
Постскриптум Я бы пометил как домашнюю работу, но она устарела. Сожалею!
Выходной параметр — это еще один способ отправить данные обратно из функции. По сути, вы не возвращаете значение, а вместо этого отправляете функции поле, в которое будет идти ответ. Помещение ответа в поле изменяет его, и ответ может быть получен из него после запуска функции.
«Стандартное» возвращаемое значение (как вы сделали):
int product(int a, int b)
{ return a*b; }
Вызов стандартной функции:
int answer = product(10, 5);
cout << answer << endl;
«Выходной параметр»: вместо передачи answer
в качестве фактического значения (например, 5 или 3), вы отправляете ящик, куда должен идти ответ; изменение содержимого этого поля изменит значение переменной в вашем main
функция также (это обозначается int & answer
вместо int answer
).
void product_output_parameter(int a, int b, int & answer)
{ answer = a*b; }
Вызов функции:
int answer;
// send answer in as a place to put the answer
product_output_parameter(10, 5, answer);
// the value stored in answer has changed
cout << answer << endl;
Если функция была определена так:
void product_output_parameter(int a, int b, int answer)
{ answer = a*b; }
изменения в answer
будет происходить только внутри функции, и поэтому не будет работать.
Надеюсь это поможет!
Функция, которую вы написали, вычисляет продукт и вызывает функцию продукта. Вы также можете вызвать это так.
int productOfAandB = product (a, b);
Ссылка позволяет изменять переменную внутри области действия вызывающего и вызываемого абонентов. Классическим примером может быть отправка Боба в раздевалку для замены на PE, в этой процедуре Боб просто идет в раздевалку и меняет, а затем процедура, которая велела Бобу сделать это, продолжается с измененным Бобом. Если бы Боба нужно было скопировать в раздевалку, а затем вернуть из раздевалки, заменив первоначального Боба, он бы вел себя больше как функция возвращаемого значения.