首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++中的原型设计

C++中的原型设计
EN

Stack Overflow用户
提问于 2015-08-25 14:46:13
回答 3查看 1.1K关注 0票数 1

如果我在代码中的主要函数之上建立了一个函数的原型,那么我是否必须包含所有必须给出的参数?有什么办法,我可以只是原型的功能,以节省时间,空间和内存?

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

代码语言:javascript
复制
#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;

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-25 14:50:28

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

是的,否则编译器不知道如何调用您的函数。

函数可以在c++中重载,这意味着具有相同名称的函数可能具有不同的参数数目和类型。这样的名字本身是不够清晰的。

“有什么办法,我可以只是原型的功能,以节省时间,空间和内存?”

不是的。你为什么认为这会节省一些记忆?

票数 4
EN

Stack Overflow用户

发布于 2015-08-25 14:51:58

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

代码语言:javascript
复制
int allesinsekunden(int, int, int)
{
//...
}

代码语言:javascript
复制
int allesinsekunden(int, int)
{
//...
}

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

代码语言:javascript
复制
int allesinsekunden;

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

票数 2
EN

Stack Overflow用户

发布于 2015-08-25 14:51:37

您必须声明函数的完整签名,即名称、返回值、所有带有类型的参数、它们的一致性等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32207173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档