我想知道为什么当我在 int main()
之前声明我的函数时,它工作正常但是,当我尝试做一个原型(prototype)并调用它时,我得到一个错误 - function does not take 0 arguments
?
double timeOnHighway(double mileEndingPoint,
double mileStartingPoint,
double speed);
int main()
{
cout << timeOnHighway();
return 0;
}
double timeOnHighway(double mileEndingPoint = 20.0,
double mileStartingPoint = 0.0,
double speed = 55.0)
{
double timeTravel = ((mileEndingPoint - mileStartingPoint) / speed);
return timeTravel;
}
最佳答案
因为函数(由原型(prototype)声明)不接受 0 个参数。在主函数中,您正在调用一个函数并且不传入任何参数,但编译器只看到原型(prototype),它需要 3 个参数。因此错误。它不知道您稍后将使用可以采用零参数的实现来专门化它。
将默认参数移动到原型(prototype)(以及后来的 .h 文件)将解决问题。
关于c++ - 为什么当我在 int main() 之前声明它而不是之后声明它时函数起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61240085/