Static member variables and static member functions
In some languages, class variables and class methods are either statically resolved, not via dynamic dispatch, or their memory statically allocated at compile time (once for the entire class, as static variables), not dynamically allocated at run time (at every instantiation of an object). In other cases, however, either or both of these are dynamic. For example, if classes can be dynamically defined (at run time), class variables of these classes are allocated dynamically when the class is defined, and in some languages class methods are also dispatched dynamically. Thus in some languages, static member variable or static member function are used synonymously with or in place of "class variable" or "class function", but these are not synonymous across languages. These terms are commonly used in Java, C# , and C++, where class variables and class methods are declared with thestatic
keyword, and referred to as static member variables or static member functions.
Example
Request::count
is incremented on each call to the Request::count
always holds the number of Requests that have been constructed, and each new Request object is given a number
in sequential order. Since count
is a class variable, there is only one object Request::count
; in contrast, each Request object contains its own distinct number
field.
Also note that the variable Request::count
is initialized only once.
Notes
{{DEFAULTSORT:Class Variable Object-oriented programming Variable (computer science) Articles with example C++ code