Кент Рейсдорф. 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, а другой конструктор позволит вам инициа­лизировать члены-данные путем передачи конструктору аргументов. Давайте посмотрим, как могло бы выглядеть объявление класса:


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

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

Web-дизайн (с) 2010 All rights reserved