+ 5

What is static variable?

each and everyone says the different kind of answers about static variable.i need exact answer of static variables.

10th May 2017, 2:41 AM
Jothi N
Jothi N - avatar
6 Answers
+ 13
static variable belongs to a class. That is why they are called class variable. Can be accessed immediately by classname.variablename without instantiation
10th May 2017, 3:49 AM
NimWing Yuan
NimWing Yuan - avatar
+ 7
@NimWing Yuan: Totally agree. Every object of a class has a separate copy of every variable of the class. They all store different data for their respective objects, even though they are the same variables. However, in case of a static variable, there exists only a single copy for all objects of that class. If one object makes a change to its value, all objects get the updated value.
10th May 2017, 4:45 AM
Nihar Raote
Nihar Raote - avatar
+ 3
Static versus dynamic - a concept that dates back to the earliest programming languages - defines how a variable gets assigned its location in memory. Static means the variable does not move from its memory location. Its location gets assigned when the program loads and it remains there, affixed until the program shuts down. There is only one instance and it is globally unique. (There are technical exceptions when using virtual machines but this is the fundamental concept). All other kinds of variables are dynamic. A dynamic variable gets assigned its location only during run time. It may be destroyed and created again as needed, each time possibly in a different location. There even will be multiple copies at the same time in different parts of memory when a class object gets instantiated multiple times. Static necessarily disallows multiple instantiations. So beware that a static variable is a global. If multiple objects are using it, then each has potential to overwrite what another object stored there.
10th May 2017, 8:56 AM
Brian
Brian - avatar
+ 1
If you create global variables in a file diffrent from main.cpp, you also need to make them static.
10th May 2017, 5:09 AM
Toky R.
Toky R. - avatar
+ 1
y para los que no sabemos tanto ingles ??
30th Jun 2017, 2:39 PM
gabriel
0
@Gabriel I hope this is easier to read. If you wish to make sure that there is only one instance of a variable or object then you should declare that variable or object to be static. Static means that it can not move in memory and it has only one instance. Beware that if one part of the code changes the value of a static variable, then its value will be changed for all parts of the code that use it. A static object can be instantiated only once. Because it stays in one memory location it would have to overwrite itself to get instantiated again.
30th Jun 2017, 3:16 PM
Brian
Brian - avatar