C++ 原型设计

Prototyping in C++

如果我在我的代码中对主函数之上的函数进行原型设计,我是否必须包含必须提供的所有参数?有没有一种方法可以让我只对函数进行原型设计,以节省时间、space 和内存?

这是我提出这个问题的代码:

#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;

}

"If I prototype a function above the main function in my code, do I have to include all parameters which have to be given?"

是的,否则编译器不知道你的函数是怎么被允许调用的
C++中的函数可以重载,这意味着同名函数可能有不同数量和类型的参数。光是这样的名字还不够鲜明

"Is there a way how I can just prototype only the function, to save time, space and memory?"

没有。为什么您认为它会节省内存?

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

不,因为这会增加歧义。在 C++ 中,完全有可能有两个完全不同的函数,它们仅在输入参数的数量 and/or 类型上有所不同。 (当然,在一个写得很好的程序中,这些函数的作用应该是相关的。)所以你可以

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

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

如果您尝试 'prototype'(声明)其中之一

int allesinsekunden;

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