用C ++编写原型

时间:2015-08-25 14:46:14

标签: c++ function prototyping

如果我在我的代码中将函数原型化为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;

}

3 个答案:

答案 0 :(得分:4)

  

“如果我在我的代码中将函数原型化为主函数,我是否必须包含所有必须给出的参数?”

是的,否则编译器不知道如何调用您的函数 函数可以在c ++中重载,这意味着具有相同名称的函数可能具有不同的数量和类型的参数。仅这样的名字就不够明显了。

  

“我有没有办法只对原型进行原型设计,以节省时间,空间和内存?”

没有。为什么你认为它会节省任何记忆?

答案 1 :(得分:2)

不,因为这会增加歧义。在C ++中,完全可能有两个完全不同的函数,这些函数仅在输入参数的数量和/或类型上有所不同。 (当然,在一个编写良好的程序中,这些函数应该与之相关。)所以你可以拥有

int allesinsekunden(int, int, int)
{
//...
}

int allesinsekunden(int, int)
{
//...
}

如果您尝试使用

'原型'(声明)其中一个
int allesinsekunden;

编译器如何知道正在声明哪个函数?具体来说,如何在main中找到正确的定义?

答案 2 :(得分:0)

你必须声明你的函数的完整签名,即名称,返回值,所有类型的参数,它们的常量等。