我正在研究决赛,最近有一个话题困扰着我,我不明白为什么我们在代码中使用静态变量或静态数据成员。谁能向我解释我们如何以及为什么在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。谁能向我解释为什么?
答案 0 :(得分:1)
静态的含义是:当变量声明为静态时,将在程序生命周期内为其分配空间。即使多次调用该函数,静态变量的空间也只会分配一次,并且上一个调用中的变量值将通过下一个函数调用进行传送。
答案 1 :(得分:-1)
static关键字表示变量绑定到类本身而不是类的对象。 如果未将其声明为静态,则可以分别针对该类的每个对象进行更改,而如果更改某个类的静态变量,则将其所有对象设置为新值。
我希望这会有所帮助。 如果您有任何疑问,请随时提问。
编辑:正如Bogdan Doicin在另一个答案中指出的那样,static在函数中具有另一含义。 我将保留其他含义,但是如果您想接受答案,请接受他的答案,因为它更适合该问题。