Prototyping in C++

Prototyping in C++

本文关键字:C++ in Prototyping      更新时间:2023-10-16

如果我在我的代码中的主函数上面的函数原型,我必须包括所有必须给出的参数吗?是否有一种方法,我可以只原型功能,以节省时间,空间和内存?

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

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

"如果我在代码中的主函数之上创建了一个函数原型,我是否必须包含所有必须给出的参数?"

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

"有没有一种方法可以让我只原型功能,以节省时间,空间和内存?"

。你为什么认为它会节省内存?

不可以,因为这样会增加歧义。在c++中,完全有可能有两个完全不同的函数,它们只是输入参数的数量和/或类型不同。(当然,在一个编写良好的程序中,这些函数的作用应该是相关的。)也就是

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

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

如果你试图用

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

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

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