0
what is static data member ?
2 ответов
+ 1
It's actually quite simple. If you declare a variable as static in the scope of a function, its value is preserved between successive calls to that function. So:
int myFun() {
static int i=5;
i++;
return i;
}
int main() {
cout << myFun();
cout << myFun();
cout << myFun();
}
will show 678 instead of 666, because it remembers the incremented value.
+ 1
a static data member acts like a global variable for its class. i.e. it is globally available for all the objects of its class and can be modified by all the objects of the class.
class test{
public:
static int a;
};
int test::a=0;
int main()
{
test t;
cout<<t.a<<endl;
t.a++;
cout<<t.a<<endl;
test p;
p.a++;
cout<<p.a;
}
//you see variable has been modified by both objects
edit: this is different explanation from what aditya has given. It is for static data member of a class. So, don't get confused.