我有這樣的功能:如何將同一個類中的兩個值從一個函數傳遞給另一個函數?
void fraction::init()
{
cout<<"enter the values for the numerator and denominator\n";
cin>>num;
cin>>denom;
}
,我想在操縱他們另一個函數中使用這兩個數字。 我該如何把他們帶到這個其他功能? 注意:這兩個函數都是相同的類。
我有這樣的功能:如何將同一個類中的兩個值從一個函數傳遞給另一個函數?
void fraction::init()
{
cout<<"enter the values for the numerator and denominator\n";
cin>>num;
cin>>denom;
}
,我想在操縱他們另一個函數中使用這兩個數字。 我該如何把他們帶到這個其他功能? 注意:這兩個函數都是相同的類。
簡單地將它們定義爲類的成員:
class fraction {
private:
int num;
int denom;
public:
void init(); // has access to num and denom
void otherMethod(); // also has access to num and denom
};
你也應該不依賴於init()
被調用到初始化變量有默認值,你也應該不依賴於各種默認初始化由C++提供,參見Default variable value。
相反,添加一個構造函數,用於設置變量的默認值,以確保已創建類的對象之後,這些變量的合理值。然後,你仍然可以調用init()
設置任何你想要的值(也許你應該重新命名init()
爲類似readValues()
,以反映該方法確實)。
這取決於你將如何使用這些功能。由於都屬於同一類,可以使類num
和denom
(私有)的成員。但如果這些值來自課外,也可以使用引用。不管這將工作的屬於同一類或沒有的功能:
class fraction
{
public:
void init(int& num, int& denom) const;
void otherFunction(int num, int denom);
}
void fraction::init(int& num, int& denom) const
{
cout<<"enter the values for the numerator and denominator\n";
cin>>num;
cin>>denom;
}
// Define otherFunction() appropriately
然後在另一段代碼使用這些功能:
// ...
int aNum, aDenom;
fraction fr;
fr.init(aNum, aDenom);
fr.otherFunction(aNum, aDenom);
// ...
要麼讓他們的類的成員,那麼多建議,或者你可以嘗試在需要時傳遞它們。如果你想讓它們的值反映變化,請通過引用傳遞它們。
datatype function1(int *a, int *b)
然後當你由init調用它們()函數,
function1(&num, &denom)
希望這有助於
使用指針引用傳遞的這種方式是類似C,檢查以前的答案的例子,知道如何正確地做它在C++ – Antonio
老實說,這個問題說明你缺乏依據關於類是如何工作的,應當使用因爲,試着找一本好書。 – Antonio