我正在嘗試使用qt創建器進行猜數字遊戲。我需要從另一個函數訪問一個變量。我能夠通過添加「自我」在python上做到這一點。到變化的開始,但我不能在C++上做到這一點。以下是我想要做的示例:C++從其他函數訪問變量
void function1()
{
int i;
}
void function2()
{
I need to access i here.
}
感謝您的幫助。
我正在嘗試使用qt創建器進行猜數字遊戲。我需要從另一個函數訪問一個變量。我能夠通過添加「自我」在python上做到這一點。到變化的開始,但我不能在C++上做到這一點。以下是我想要做的示例:C++從其他函數訪問變量
void function1()
{
int i;
}
void function2()
{
I need to access i here.
}
感謝您的幫助。
你可以使用指針,類或全局變量(我建議指針或一類壽)
void f1(int *iPtr)
{
cout << "value= " <<*iPtr << endl;
}
void f2(int *iPtr)
{
*iPtr = *iPtr + 5; // access (modify) variable here
cout << "after addition = " << *iPtr << endl;
}
int main()
{
int i = 5;
int *iPtr;
iPtr = &i; // point pointer to location of i
f1(iPtr);
f2(iPtr);
// after f1() value of i == 5, after f2() value of i == 10
}
我相信C++中的等價行爲應該是一個成員變量。
如果你還沒有,我會建議使用一個類。所以,在你的頭文件中定義它是這樣的:如果你不使用C++類
class MyClass {
public:
void function1();
void function2();
private:
int i;
};
,那麼你可以定義在頭文件中的「i」,但是,這將使全球 - 在essense。而且,可能不是最佳做法。
僅僅因爲你*可以*在C++中使用類並不意味着你*必須*。但我不會倒下。 –
但我需要讓我重新設置每次按鈕(function1)點擊以獲得新的隨機數。這就是爲什麼我需要在function1中聲明它。還要感謝我會檢查傳遞和返回變量。 – user3755771
從另一個函數中訪問變量是不可能的,因爲它們只存在於堆棧上,並且當函數退出時它們被銷燬。使用全局變量。
您可以將i聲明爲全局變量,並且只要您選擇它就將其指定給隨機數。這樣你仍然可以生成一個隨機數並在另一個函數中使用它。
int i;
void function1()
{
int randNum;
// get random number here
i = randNum;
}
void function2()
{
// do stuff with i here
}
謝謝。這是工作 – user3755771
使用。參數。 – chris
您是否學過如何將函數傳遞給函數並將函數返回? –
通過在兩個函數之外聲明它來使'i'全局。 –