При объявлении функции в C ++ нужно ли иметь параметры, которые имеет сама функция? - PullRequest
0 голосов
/ 29 октября 2018

(Пожалуйста, имейте в виду, что я только недавно углубился в функции C ++.)
Допустим, вам нужна функция, которая будет считать от 1 до определенного числа.

#include <iostream>
int countTo(int num);
int countTo(int num) {
  for (int i = 1; i <= num; i++) {
    std::cout << i << "\n";
  }
  return num;
}
int main() {
  int num;
  std::cout << "Enter a number to which the program will count: ";
  std::cin >> num;
  countTo(num);
  return 0;
}

Я поместил такой же код в компилятор, просто без параметров в объявлении функции, например:

int countTo();
int countTo(int num) {
  for (int i = 1; i <= num; i++) {
    std::cout << i << "\n";
  }
  return num;
}

И это сработало так же хорошо. Нужно ли включать параметры при объявлении int countTo(int num)? Или для какой-либо функции?

std::cout << "Thanks!!";

1 Ответ

0 голосов
/ 29 октября 2018

Когда вы пишете это, происходит две разные вещи:

int countTo(int num) {
  for (int i = 1; i <= num; i++) {
    std::cout<<i<<"\n";
  }
  return num;
}

Вы объявляете функцию с именем countTo, которая принимает int и возвращает int, и вы также определяете функцию.

Когда над строкой написано

int countTo(int num);

вы объявляете ту же функцию, но не определяете ее.

Когда вы изменили эту строку на

int countTo();

вы объявили другую функцию ( перегрузка ), которая не принимает параметров. Неважно, что вы не определили эту функцию, потому что никто никогда не пытался ее вызывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...