[class.static.general]

# 11 Classes [[class]](./#class)

## 11.4 Class members [[class.mem]](class.mem#class.static.general)

### 11.4.9 Static members [[class.static]](class.static#general)

#### 11.4.9.1 General [class.static.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/classes.tex#L2732)

A static member s of class X may be referred to
using the [*qualified-id*](expr.prim.id.qual#nt:qualified-id "7.5.5.3 Qualified names [expr.prim.id.qual]") expression X​::​s; it is not
necessary to use the class member access syntax ([[expr.ref]](expr.ref "7.6.1.5 Class member access")) to
refer to a static member[.](#1.sentence-1)

A static member may be
referred to using the class member access syntax, in which case the
object expression is evaluated[.](#1.sentence-2)

[*Example [1](#example-1)*: struct process {static void reschedule();};
process& g();

void f() { process::reschedule(); // OK, no object necessary g().reschedule(); // g() is called} â *end example*]

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/classes.tex#L2753)

Static members obey the usual class member access rules ([[class.access]](class.access "11.8 Member access control"))[.](#2.sentence-1)

When used in the declaration of a class
member, the static specifier shall only be used in the member
declarations that appear within the [*member-specification*](class.mem.general#nt:member-specification "11.4.1 General [class.mem.general]") of
the class definition[.](#2.sentence-2)

[*Note [1](#note-1)*:

It cannot be specified in member declarations that appear in namespace scope[.](#2.sentence-3)

â *end note*]
