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
中使用的正确定义?
如果我在我的代码中对主函数之上的函数进行原型设计,我是否必须包含必须提供的所有参数?有没有一种方法可以让我只对函数进行原型设计,以节省时间、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
中使用的正确定义?