Бьерн Страуструп.
Язык программирования С++
139
//
...
};
Но описание статического члена - это
только описание, и где-то в
программе должно быть
единственное определение для описываемого объекта или функции, например, такое:
task* task::task_chain = 0;
void task::shedule(int p) { /* ... */ }
Естественно, что и частные члены могут определяться подобным образом.
Отметим, что служебное слово static не нужно и даже нельзя использовать в определении статического
члена класса. Если бы оно присутствовало, возникла бы неоднозначность: указывает ли оно на то, что
член класса является статическим, или используется для описания глобального объекта или функции?
Слово static одно из
самых перегруженных служебных слов в С и С++. К статическому члену,
представляющему данные, относятся оба основных его значения: "статически размещаемый" , т.е.
противоположный объектам, размещаемым в стеке или свободной памяти, и "статический" в смысле с
ограниченной
областью видимости, т.е. противоположный объектам,
подлежащим внешнему
связыванию. К функциям-членам относится только второе значение static.
Достарыңызбен бөлісу: