Prototyping in C++
Prototyping in C++
如果我在我的代码中的主函数上面的函数原型,我必须包括所有必须给出的参数吗?是否有一种方法,我可以只原型功能,以节省时间,空间和内存?
下面是我提出这个问题的代码:
#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,等等
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp