Поля данных и методы класса

При определении класса в теле его спецификации вводятся данные (поля данных) и принадлежащие классу функции (методы).

Поля данных. Элементы класса могут быть как базовых, так и производных типов, т.е. полями данных служат переменные, массивы, указатели и т.д. Описания элементов одного типа могут быть размещены в одном предложении.

В отличие от обычного определения данных при описании элементов класса невозможна их инициализация. Это естественное свойство класса, так как при его определении еще не существует участков памяти, соответствующих его полям данных. Память выделяется не для класса, а только для объектов класса. Для инициализации полей данных должен использоваться автоматический или явно вызываемый конструктор соответствующего класса.

Существуют различия между обращениями к полям данных (и методам) класса из принадлежащих ему функций (из методов класса) и из других частей программы. Принадлежащие классу функции имеют полный доступ к его данным (и методам), т.е. для обращения к элементу класса из тела метода достаточно использовать только имя поля данных.

Для доступа к полям данных (и методам) класса из операторов, выполняемых вне его определения, непосредственное использование имен элементов недопустимо. Смысл такого запрета определяется механизмом «привязки» данных класса к конкретным объектам. Определение класса не вводит его данных, а в нем только обозначается возможность их формирования при создании конкретных объектов класса. Явно размещается в памяти не класс, а конкретный объект класса. В отведенной для объекта области памяти выделяются участки, соответствующие полям данных.

Операции, использованные для доступа к элементам класса извне:

- операция выбора элемента точка. комбинируется для доступа к элементам объекта с именем объекта или ссылкой на объект;

- операция выбора элемента стрелка -> комбинируется для доступа к элементам объекта с указателем на объект.

 

Данные класса не обязательно должны быть определены или описаны до (выше) их первого использования в принадлежащих классу функциях. То же самое справедливо и для методов класса, т.е. обратиться из одной функции к другой можно до ее определения внутри тела класса. Все поля данных и методы класса «видны» во всех оператора тела любой из функций класса. Именно поэтому в С++ введена особая область видимости «класс».

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: