Студопедия

Главная страница Случайная страница

Разделы сайта

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






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






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

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

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

class < имя> {

[ private: ]

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

public:

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

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

 

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

Поля класса:

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

 

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.