static storage class

   
static storage class Static storage class specifier

  storage-class-specifier  := static 

The static storage class specifier can be used with objects, functions, and class members . Its purpose varies slightly depending on how you use it:

  • For local objects, static affects the object's lifetime: instead of being constructed anew every time the function is called, a static local object is constructed at most once, and the object retains its value across function calls.

  • A static class member is not tied to a specific object. Instead, it is similar to a global object or function, but in the scope of the class that declares it.

  • For global declarations, using static means the object or function has internal linkage instead of the default external linkage, that is, the object or function is not visible in other source files. This use is deprecated; use anonymous namespaces instead.

Example

 struct demo {  static  const int size = 10;  static  void func(  ) {     return size;   } private:   int data_[size]; };  static  int local_data = 10;  static  int local_func() { return demo::func(  ); } 

See Also

auto , class , extern , namespace , register , type , Chapter 2

   


C++ in a Nutshell
C++ in a Nutshell
ISBN: 059600298X
EAN: 2147483647
Year: 2005
Pages: 270
Authors: Ray Lischner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net