Static- и Const- компоненты класса
Класс, содержащий static компоненты-данные, объявляется как глобальный (локальные классы не могут иметь статических членов). Static-компонента совместно используется всеми объектами этого класса и хранится в одном месте. Статическая компонента глобального класса должна быть явно определена в контексте файла.
основные правила использования статических компонент:
– статические компоненты будут одними для всех объектов данного класса. То есть ими используется одна область памяти; – статические компоненты не являются частью объектов класса; – объявление статических компонент-данных в классе не является их описанием. Они должны быть явно описаны в контексте файла; – локальный класс не может иметь статических компонент; – к статической компоненте st класса cls можно обращаться cls::st, независимо от объектов этого класса, а также используя операторы. и -> при использовании объектов этого класса;
– статическая компонента существует даже при отсутствии объектов этого класса; – статические компоненты можно инициализировать, как и другие глобальные объекты, только в файле, в котором они объявлены.
Class cls { char*s; public: static int k; … (объявл статик-члена в классе); в ф-ии мэйн можно обращ к статик-компон cls::ind (имя кл::идентификатор);
В С++ компоненты-функции могут использоваться с модификатором static и const. Обычная компонента-функция, вызываемая object. function(a,b);
имеет явный список параметров a и b и неявный список параметров, состоящий из компонент данных переменной object. Неявные параметры можно представить как список параметров, доступных через указатель this. Компонента-функция const не может изменять неявные параметры. Функции класса, объявленные со спецификатором const, могут быть вызваны для объекта со спецификатором const, а функции без спецификатора const – не могут.
const cls c1; cls c2; c2.inpt(100); c1.seb();
нельзя изменить значение компоненты объекта через указатель this без явной записи
Дата добавления: 2015-12-21; просмотров: 93; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!