Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 79
class Vehicle { public:
Vehicle (); // конструктор
bool haveKey;
bool Start();
void SetGear(int Gear);
void Accelerate(int acceleration);
Обратите внимание, что для конструктора не указан тип возвращаемого значения. Дело в том, что конструктор не может возвращать никакого значения. Если вы попытаетесь указать тип возвращаемого значения в объявлении конструктора, компилятор выдаст сообщение об ошибке.
Класс может иметь более одного конструктора. Это возможно благодаря перегрузке функций, что обсуждалось на третий день, «Указатели, ссылки и функции в Си++». Например, можно определить конструктор без аргументов (конструктор по умолчанию) и конструктор, принимающий один или несколько аргументов для инициализации членов-данных. Предположим, что у вас есть класс Rect, служащий для представления прямоугольника (прямоугольники часто используются в Windows-программах). Этот класс мог бы иметь два конструктора: конструктор по умолчанию будет устанавливать все члены-данные в 0, а другой конструктор позволит вам инициализировать члены-данные путем передачи конструктору аргументов. Давайте посмотрим, как могло бы выглядеть объявление класса:
Первый конструктор является конструктором по умолчанию, поскольку он не имеет аргументов. Его задача — просто инициализировать нулем все члены-данные. Второй конструктор принимает переданные ему значения и присваивает их соответствующим членам-данным. Имена переменных в списке параметров снабжены знаком подчеркивания, чтобы отличать их от имен чл енов-данных.
Помните, что неинициализированные переменные содержат случайные значения. Это верно и для членов-данных класса. Для безопасности следует присваивать переменным-членам класса, какие-либо начальные значения.