我正在完成一项家庭作业,我很困惑这些指示要求我为这些功能编写的内容。指示说:
编写一个名为GetSalesInfo的void函数,该函数接受以下来自用户的输入
此函数应将所有这些输入返回给调用函数 - 我对此部分最为困惑
写下以下值返回函数:
我不明白第一个函数应该做什么,我已经设置了参数,但我不知道在实际函数中该做什么。
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函数中访问所有这些信息。
我不是要求任何人做我的作业,我只需要朝着正确的方向努力,我的教授永远无法帮助任何人。
答案 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)
我同意,措辞很差。您显然无法从函数返回多个值,因此您有两个实际选择。
函数声明实际上没有意义。
另外,我不知道如何在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
}