C ++从其他函数访问变量

时间:2014-07-18 19:30:10

标签: c++

我正在尝试使用qt creator进行数字猜谜游戏。我需要从另一个函数访问一个变量。通过添加" self,我能够在python上做到这一点。"开始变量,但我不能在C ++上做。以下是我想要做的示例:

void function1()
{
   int i;
}

void function2()
{
   I need to access i here.
}

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我相信C ++中的等效行为将是一个成员变量。

如果您还没有,我建议您上课。因此,在头文件中定义如下:

class MyClass {
  public:
    void function1();
    void function2();

  private:
    int i;
};

如果您不使用C ++课程,那么您可以定义" i"在头文件中,但这将使它成为全局 - 在本质。而且,可能不是最好的做法。

答案 1 :(得分:1)

你可以使用指针,类或全局变量(我建议使用指针或类)。

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
}

答案 2 :(得分:0)

无法从另一个函数访问变量,因为它们仅存在于堆栈中,并且在函数退出时会被销毁。使用全局变量。

答案 3 :(得分:0)

您可以将i声明为全局变量,并在选择后为其分配随机数。这样你仍然可以生成一个随机数并在另一个函数中使用它。

int i;
void function1()
{
   int randNum;
    // get random number here
   i = randNum;
}

void function2()
{
   // do stuff with i here
}