静态关键字的用途是什么?

时间:2019-04-28 10:17:32

标签: c++

我正在研究决赛,最近有一个话题困扰着我,我不明白为什么我们在代码中使用静态变量或静态数据成员。谁能向我解释我们如何以及为什么在C ++中使用static关键字

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

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;
}

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

2 个答案:

答案 0 :(得分:1)

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

Starting point

答案 1 :(得分:-1)

static关键字表示变量绑定到类本身而不是类的对象。 如果未将其声明为静态,则可以分别针对该类的每个对象进行更改,而如果更改​​某个类的静态变量,则将其所有对象设置为新值。

我希望这会有所帮助。 如果您有任何疑问,请随时提问。

编辑:正如Bogdan Doicin在另一个答案中指出的那样,static在函数中具有另一含义。 我将保留其他含义,但是如果您想接受答案,请接受他的答案,因为它更适合该问题。