如果我在我的代码中将函数原型化为main函数,我是否必须包含所有必须给出的参数?有没有办法如何才能只对原型进行原型设计,以节省时间,空间和内存?
以下是我提出这个问题的代码:
#include <iostream>
using namespace std;
int allesinsekunden(int, int, int);
int main(){
int stunden, minuten, sekunden;
cout << "Stunden? \n";
cin >> stunden;
cout << "Minuten? \n";
cin >> minuten;
cout << "Sekunden= \n";
cin >> sekunden;
cout << "Alles in Sekunden= " << allesinsekunden(stunden, minuten, sekunden) << endl;
}
int allesinsekunden (int h, int m, int s) {
int sec;
sec=h*3600 + m*60 + s;
return sec;
}
答案 0 :(得分:4)
“如果我在我的代码中将函数原型化为主函数,我是否必须包含所有必须给出的参数?”
是的,否则编译器不知道如何调用您的函数 函数可以在c ++中重载,这意味着具有相同名称的函数可能具有不同的数量和类型的参数。仅这样的名字就不够明显了。
“我有没有办法只对原型进行原型设计,以节省时间,空间和内存?”
没有。为什么你认为它会节省任何记忆?
答案 1 :(得分:2)
不,因为这会增加歧义。在C ++中,完全可能有两个完全不同的函数,这些函数仅在输入参数的数量和/或类型上有所不同。 (当然,在一个编写良好的程序中,这些函数应该与之相关。)所以你可以拥有
int allesinsekunden(int, int, int)
{
//...
}
和
int allesinsekunden(int, int)
{
//...
}
如果您尝试使用
'原型'(声明)其中一个int allesinsekunden;
编译器如何知道正在声明哪个函数?具体来说,如何在main
中找到正确的定义?
答案 2 :(得分:0)
你必须声明你的函数的完整签名,即名称,返回值,所有类型的参数,它们的常量等。