Функция не возвращает значение, но cout отображает его - PullRequest
0 голосов
/ 17 мая 2018

Я немного изучил C ++ и попробовал свои силы в создании простой функции, которая возвращает площадь комнаты.Оператор return не выводит значение, однако, используя cout, я вижу результат.Я что-то здесь упускаю?

#include <iostream>
using namespace std;

int Area(int x, int y);

int main()
{
  int len;
  int wid;
  int area;
  cout << "Hello, enter the length and width of your room." << endl;
  cin >> len >> wid;
  cout << "The area of your room is: ";
  Area(len, wid);
  return 0;
}

int Area(int len, int wid)
{
  int answer = ( len * wid );
  return answer;
}

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

return ничего не печатает, и вы не должны этого ожидать.Все, что он делает, это возвращает значение из функции.Затем вы можете делать с этим значением все, что захотите, в том числе распечатывать его или присваивать его переменной:

// Does not print:
Area(len, wid);

// Does print:
int result = Area(len, wid);
std::cout << result << "\n";

// Does print:
std::cout << Area(len, wid) << "\n";

Представьте себе хаос, если каждая функция в большой кодовой базе внезапно начала печатать свое возвращаемое значение...

0 голосов
/ 17 мая 2018

std::cout используется для печати данных на экране. Только функции возвращают значения, поэтому функция Area вернет значение, которое должно быть передано в функцию std::ostream::operator<< для его печати. Вам необходимо написать:

std::cout << Area(len, wid) << "\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...