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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!