-2

我正在为我的期末考试而学习,最近有一个话题困扰着我,我不明白为什么我们在代码中使用静态变量或静态数据成员。谁能向我解释一下我们如何以及为什么static在 C++ 中使用关键字

我尝试在不同的网站上查找它,并且尝试了一些代码,但我不明白为什么我会得到这样的结果。

class myclass {
    public:
    int a,b;
    inline int getVal();
};

inline int myclass :: getVal()
{
    cout<<"Enter the value of a and b\n";
    static int  a = 9; //static keyword used.

    cin>>a>>b;
}
int main()
{
    myclass o1;
    o1.getVal();
    cout<<"\nThe value of a is : "<<o1.a<<"\nThe value of b is : "<<o1.b;
}

无论我输入什么,我得到的 a 值都是 3?谁能向我解释这是为什么?

4

2 回答 2

1

静态的含义是这样的:当一个变量被声明为静态时,它的空间被分配给程序的生命周期。即使该函数被多次调用,静态变量的空间也只会分配一次,并且前一次调用中的变量值将通过下一次函数调用进行传递。

初始点

于 2019-04-28T10:22:45.203 回答
-1

static 关键字意味着变量绑定到类本身而不是类的对象。如果它未声明为静态,则可以为类的每个对象单独更改,而如果更改​​类的静态变量,则将其设置为所有对象的新值。

我希望这有帮助。如果您有任何问题随时问。

编辑:正如 Bogdan Doicin 在另一个答案中指出的那样,静态在函数中有另一个含义。我将把它留给其他含义,但如果你想接受一个答案,请接受他的答案,因为它更适合这个问题。

于 2019-04-28T10:23:02.767 回答