[英]C++ Void Function Confusion
我正在做作業,對這些功能要我寫的指示感到困惑。 指示說:
編寫一個稱為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函數中訪問所有這些信息。
我並不是要任何人做作業,我只需要向正確的方向稍加推動,我的教授就永遠無法幫助任何人。
好吧,它專門要求一個void函數,這意味着它將不通過返回值返回任何內容 。
C ++具有引用類型,這些引用類型增強了C的實現方式(傳遞指向變量的指針,然后對它們進行解引用以在函數外部對其進行更改):
void GetSalesInfo (int &accNum,
int &month,
int &day,
:
:
當您在函數中更改這些變量時,這將反映回您傳入的變量中。
因此,您的函數可以簡單地從用戶輸入數據並將其存儲到這些變量中。 然后,返回到調用函數,您可以將它們傳遞給CalcDiscount
,例如:
float CalcDiscount (int accNum,
int month,
int day,
:
:
我相信第一個函數應該使用傳遞引用。 在數據類型之后放置&符號,對變量所做的任何更改都將對傳遞的變量進行,而不僅僅是其副本。 例:
#include <iostream>
void increment(int& num) {
num += 1;
}
int main(void) {
int num = 0;
increment(num);
std::cout << num << std::endl;
return 0;
}
我同意,措辭很差。 您顯然不能從一個函數返回多個值,因此有兩個實際選擇。
函數聲明只是沒有意義。
另外,我不知道如何在CalcDiscount函數中訪問所有這些信息。
這取決於您需要在何處調用它。 您可能會從GetSalesInfo中調用它。
不好意思地說,但是我相信您編寫的摘要是錯誤的,您的老師希望函數接受這些值,即“ 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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.