Когда вы пишете это, происходит две разные вещи:
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();
вы объявили другую функцию ( перегрузка ), которая не принимает параметров. Неважно, что вы не определили эту функцию, потому что никто никогда не пытался ее вызывать.