C ++ Void Function Confusion

时间:2011-02-15 02:34:25

标签: c++ function

我正在完成一项家庭作业,我很困惑这些指示要求我为这些功能编写的内容。指示说:

编写一个名为GetSalesInfo的void函数,该函数接受以下来自用户的输入

  • 帐号
  • 销售日期
  • 县代码
  • 总销售
  • 装运重量

此函数应将所有这些输入返回给调用函数 - 我对此部分最为困惑

写下以下值返回函数:

  • CalcDiscount - 返回销售的适当折扣

我不明白第一个函数应该做什么,我已经设置了参数,但我不知道在实际函数中该做什么。

void GetSalesInfo(int accNum,       // Account Number - IN
            int month,          // Month of sale - IN
            int day,            // Day of sale - IN
            int year,           // Year of sale - IN
            char countyCode,    // County Code - IN
            float total,        // Total Sale Amount (Before Tax) - IN
            int weight)         // Shipping Weight - IN
{

}

另外,我不知道如何在CalcDiscount函数中访问所有这些信息。

我不是要求任何人做我的作业,我只需要朝着正确的方向努力,我的教授永远无法帮助任何人。

4 个答案:

答案 0 :(得分:4)

好吧,它专门调用了一个void函数,这意味着它将通过返回值返回 nothing

C ++有引用类型,它增加了C的实现方式(将指针传递给变量,然后取消引用它们以在函数外部更改它们):

void GetSalesInfo (int &accNum,
                   int &month,
                   int &day,
                   :
                   :

当您在函数中更改这些变量时,它将反映回您传入的变量中。

因此,您的函数可以简单地从用户输入数据并将它们存储到这些变量中。然后,回到调用函数中,您可以将它们传递给CalcDiscount,类似于:

float CalcDiscount (int accNum,
                    int month,
                    int day,
                    :
                    :

答案 1 :(得分:4)

我相信第一个功能是使用pass-by-reference。放置一个&数据类型之后的符号,对变量所做的任何更改都将对传递的变量进行,而不仅仅是它的副本。例如:

#include <iostream>

void increment(int& num) {
    num += 1;
}

int main(void) {
    int num = 0;
    increment(num);
    std::cout << num << std::endl;
    return 0;
}

答案 2 :(得分:0)

我同意,措辞很差。您显然无法从函数返回多个值,因此您有两个实际选择。

  1. 返回一个封装所有这些值的数据对象(推荐,但可能不适合此作业。
  2. 参考多个输出参数并在函数中指定它们。
  3. 函数声明实际上没有意义。

      

    另外,我不知道如何在CalcDiscount函数中访问所有这些信息。

    这取决于您需要调用它的位置。您可能会从GetSalesInfo中调用它。

答案 3 :(得分:-2)

很抱歉,但我相信你所做的摘要是错误的,你的教师希望函数接受这些值,就像在“cin”中那样,因此你不会直接将它们传递给函数。

摘要很像:

void GetSalesInfo()
{
  ////Code of the INPUT function here     
    * Account Number
    * Date of Sale
    * County Code
    * Total Sale
    * Shipping Weight    
}

void A()
{
  GetSalesInfo();

  // Here this GetSalesInfo would be responsible for acceting the values and returning it to the calling function "A"

  //The values would be returned with use of pointers only as your Teacher won't allow global variables :D

  //Rest of the code goes here
}