Для члена класса, представляющего данные или функцию, можно при описаниикласса задать спецификацию static. Для статического члена,представляющего данные, в программе существует только один экземпляр,которым владеют все объекты этого класса. Статический член не являетсячастью объекта класса. Статические члены глобального классаподлежат внешнему связыванию ($$R.3.3). Описание статического члена,представляющего данные, в описании класса не считается определением.Определение должно быть дано в другом месте, см. также. $$R.18.3. Статическая функция-член не имеет указатель this, поэтому длядоступа к нестатическим членам своего класса она должна использоватьоперации. или ->. Статическая функция-член не может быть виртуальной.Недопустимы статические и нестатические функции-члены с одним именеми одинаковыми типами параметров. Статические члены локального класса ($$R.9.8) не подлежатсвязыванию и не могут определяться вне описания класса. Отсюдаследует, что локальные классы не могут иметь статических членов,представляющих данные. К статическому члену mem класса c1 можно обращаться как c1::mem($$R.5.1), т.е. независимо ни от какого объекта. К нему также можнообращаться с помощью операций доступа к членам. и ->. Если кстатическому члену происходит обращение с помощью операций доступа,выражения, стоящие слева от. или -> не эквивалентны. Статическийчлен mem существует даже, если не создано ни одного объекта классаc1. В примере ниже run_chain, idle и другие члены существуют даже,если не было создано ни одного объекта класса process: class process { static int no_of_process; static process* run_chain; static process* running; static process* idle; //... public: //... int state(); static void reshedule(); //... }; Здесь к функции reshedule можно обратиться без указания объектакласса process таким образом: void f() { process::reshedule(); } Статические члены глобальных классов инициализируются точно так жекак глобальные объекты, но область их видимости - файл, например: void process::reshedule() { /*... */ }; int process::no_of_process = 1; process* process::running = get_main(); process* process::run_chain = process::running; Статические члены подчиняются обычным правилам доступа к членамкласса ($$R.11), за исключением того, что их можно инициализироватьв файловой области видимости. В типе статического члена не участвует имя класса, так типprocess::no_of_process есть int, а тип &process::reshedule() -void(*)().