Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Классы. Описание классов. Описание объектов. Указатель this.




Класс является абстрактным типом данных, определяемым пользователем, и представляет собой модель реального объекта в виде данных и функций для работы с ними.

Данные класса называются полями(по аналогии с полями структуры), а функции класса — методами. Поля и методы называются элементами класса.

Описание класса в первом приближении выглядит так:

class <имя>{

[ private: ]

<описание скрытых элементов>

public:

<описание доступных элементов>

} ; / / Описание заканчивается точкой с запятой

 

Спецификаторы доступа private и public управляют видимостью элементов класса. Элементы, описанные после служебного слова private, видимы только внутри класса. Этот вид доступа принят в классе по умолчанию. Интерфейс класса описывается после спецификатора public.

Поля класса:

· могут иметь любой тип, кроме типа этого же класса (но могут быть указателями

· или ссылками на этот класс);

· могут быть описаны с модификатором const, при этом они инициализируются

· только один раз (с помощью конструктора) и не могут изменяться;

· могут быть описаны с модификатором static.

Инициализация полей при описании не допускается.

 

Классы могут быть глобальными(объявленными вне любого блока) и локальными (объявленными внутри блока, например, функции или другого класса).

В каждом классе есть хотя бы один метод, имя которого совпадает с именем класса.

Он называется конструктором и вызывается автоматически при создании

объекта класса. Конструктор предназначен для инициализации объекта. Автоматический

вызов конструктора позволяет избежать ошибок, связанных с использованием

неинициализированных переменных.

 

Конкретные переменные типа «класс» называются экземплярами класса, или объектами.

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

Доступ к элементам объекта аналогичен доступу к полям структур (через точку).

 

Каждый объект содержит свой экземпляр полей класса. Методы класса находятся в памяти в единственном экземпляре и используются всеми объектами совместно, поэтому необходимо обеспечить работу методов с полями именно того объекта, для которого они были вызваны. Это обеспечивается передачей в функцию скрытого параметра this, в котором хранится константный указатель на вызвавший функцию объект. Указатель this неявно используется внутри метода для ссылок на элементы объекта. В явном виде этот указатель применяется в основном для возвращения из метода указателя (return this) или ссылки на вызвавший объект.


Поделиться:

Дата добавления: 2015-04-18; просмотров: 146; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты