【问题标题】:Prototyping in C++C++ 中的原型设计
【发布时间】:2015-08-25 14:46:13
【问题描述】:

如果我在我的代码中对 main 函数之上的函数进行原型设计,我是否必须包含所有必须给出的参数?有没有办法我可以只对函数进行原型设计,以节省时间、空间和内存?

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

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

}

【问题讨论】:

  • 是的,重载还能如何工作?
  • 你认为你“保存”的究竟是什么?你的问题没有任何意义。您想通过避免输入 10 个字符来“节省”时间吗?可读性如何?可维护性?这是混淆,仅此而已。
  • 当您开始编程时,您总是认为不键入三个参数可以节省时间。您很快就会发现事实恰恰相反——节省的时间很少(打字速度很快!),而忽略重要信息会总是在以后再次给您带来麻烦。所以从长远来看,这实际上会花费你的时间。
  • @KonradRudolph 好点!
  • 从声明(原型)中删除参数只会节省文本文件中的空间。如果您担心开发时间,可以参加打字(键盘输入)课程和软件设计课程。

标签: c++ function prototyping


【解决方案1】:

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

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

“有没有一种方法可以让我只对函数进行原型设计,以节省时间、空间和内存?”

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

【讨论】:

  • 我想到了我可以保存的每一行,记忆只是一个建议,而不是我确定的 100% 的事实。
【解决方案2】:

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

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

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

如果您尝试“原型”(声明)其中之一

int allesinsekunden;

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 2020-05-09
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      相关资源
      最近更新 更多