Разработка объектно-ориентированного приложения с использованием класса Directory, страница 3

Некоторые особенности локального класса:

-  внутри локального класса можно использовать типы, статические и локальные переменные, внешние функции и элементы перечислений из области, в которой он описан, запрещается использовать автоматические переменные из этой области;

-  локальный класс не может иметь статических элементов;

-  методы этого класса могут быть описаны только внутри класса;

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

В языке C++ для объявления класса необходимо вставить  ключевое слово class, после которого пишется имя класса. В фигурных скобках объявляется тело класса, причём после закрывающейся скобки обязательно нужно ставить точку с запятой. В теле класса объявляются три метки спецификации доступа, после каждой метки нужно обязательно ставить двоеточие, кроме того, для класса можно задать его базовые классы (предки) и ряд необязательных атрибутов и спецификаторов, определяющих различные характеристика класса.

Спецификаторы доступа Public, private, а так же не используемый мною в данной работе protected – это спецификаторы доступа, управляющие видимостью элементов класса. Интерфейс класса описывается после спецификатора public (открытый член класса), все методы и свойства класса, объявленные будут доступны другим объектам.

Все методы и свойства класса, объявление после спецификатора доступа private (закрытый, внутренний член класса) будут доступны только внутри класса, то есть функциям-членам данного класса и друзьям класса, как функциям, так и классам. Этот вид доступа принят в классе по умолчанию.

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

Действие любого спецификатора распространяется до следующего спецификатора или до конца класса. Можно задавать несколько секций private и public, порядок их следования значения не имеет.

Поля класса:

-  могут иметь любой тип, кроме типа этого же класса;

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

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

1.3 Конструкторы и деструкторы

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

-  конструктор не возвращает значений, даже типа void, нельзя получить указатель на конструктор;

-  класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации;

-  конструктор, вызываемый без параметров, называется конструктором по умолчанию;

-  конструкторы не наследуются;

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

-   содержать только один из конструкторов;

-  если не указано ни одного конструктора, компилятор создаст его автоматически;

-  конструкторы нельзя описывать с модификаторами const, virtual, static;

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

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

-  для локальных объектов – при выходе из блока, в котором они объявлены;

-  для глобальных – как часть процедуры выхода из main;

-  для объектов, заданных через указатели, деструктор вызывается неявно при использовании операции delete;

При выходе из области действия указателя на объект автоматический вызов деструктора объекта не производится. Имя деструктора начинается с тильды (~), непосредственно за которой следует имя класса.

Деструктор:

-  не имеет аргументов и возвращаемого значения;

-  не может быть объявлен как const или static;

-  не наследуется;

-  может быть виртуальным.

Если деструктор явным образом не определен, компилятор автоматически создает пустой деструктор.