Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 78
Защищенный уровень доступа объяснить немного труднее. К защищенным членам класса, как и к закрытым, пользователь обращаться не может. Однако эти члены могут быть доступны для классов, которые являются производными данного класса. Я буду говорить об этом подробнее немного позже, в разделе «Функции-члены».
В языке Си++ есть три ключевых слова, устанавливающих уровни доступа. Это (как и следовало ожидать) слова public, private и protected. Уровни доступа к членам класса устанавливаются при объявлении класса. Для объявления класса служит ключевое слово class. Объявление класса выглядит подобно объявлению структуры, но с добавлением модификаторов доступа:
class Vehicle { public:
bool haveKey; bool Start(); void SetGear(int Gear); void Accelerate(int acceleration); void Break(int factor); void Turn(int direction); void ShutDown(); protected:
void StartupProcedure(); private:
void StartElectricalSystem(); void StartEngine(); int currentGear; bool started; int speed;
} ;
Обратите внимание, как организовано разбиение членов класса по трем уровням доступа. Вы не обязаны использовать все три уровня доступа в своих классах. При желании можно вообще не устанавливать уровни доступа, но обычно у вас будут присутствовать по крайней мере два из них — public и private.
Классы в Си++ имеют специальную функцию, называемую конструктором.
Конструктор (constructor) — это функция, которая автоматически вызывается при создании экземпляра класса. Конструктор используется для инициализации переменных-членов класса, выделения необходимой памяти и выполнения других действий, необходимых перед началом использования класса. Класс Vehicle, приведенный выше в качестве примера, не содержит явно определенного конструктора. В таких случаях компилятор C++Builder создает конструктор по умолчанию (default constructor). Для простых классов это вполне допустимо, но обычно конструкторами снабжают классы любой значимости. Имя конструктора должно совпадать с именем класса. Это служит отличительным признаком конструктора. Теперь, имея все это в виду, давайте добавим объявление конструктора в класс Vehicle: