如果我在代码中的主要函数之上建立了一个函数的原型,那么我是否必须包含所有必须给出的参数?有什么办法,我可以只是原型的功能,以节省时间,空间和内存?
下面是我提出这个问题的代码:
#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;
}发布于 2015-08-25 14:50:28
“如果我在代码中的主要函数之上建立了一个函数的原型,我是否必须包含所有必须给出的参数?”
是的,否则编译器不知道如何调用您的函数。
函数可以在c++中重载,这意味着具有相同名称的函数可能具有不同的参数数目和类型。这样的名字本身是不够清晰的。
“有什么办法,我可以只是原型的功能,以节省时间,空间和内存?”
不是的。你为什么认为这会节省一些记忆?
发布于 2015-08-25 14:51:58
不,因为这会增加歧义。在C++中,完全可能有两个完全不同的函数,它们仅在输入参数的数量和/或类型上有所不同。(当然,在一个写得很好的程序中,这些功能应该是相关的。)所以你可以
int allesinsekunden(int, int, int)
{
//...
}和
int allesinsekunden(int, int)
{
//...
}如果您尝试'prototype‘(声明)其中一个
int allesinsekunden;编译器如何知道声明了哪个函数?具体来说,它如何才能找到在main中使用的正确定义
发布于 2015-08-25 14:51:37
您必须声明函数的完整签名,即名称、返回值、所有带有类型的参数、它们的一致性等。
https://stackoverflow.com/questions/32207173
复制相似问题