- •1 Определение интерфейса класса
- •Определение проблемы
- •Реализация класса сВох
- •Сравнение объектов cBox
- •Функция проверки того, больше ли константа объекта сВох
- •Комбинирование объектов сВох
- •Анализ объектов cBox
- •2 Многофайловый проект, использующий класс cBox
- •Определение конструктора
- •Определение класса сВох
- •Добавление функций-членов
- •Добавление глобальных функций
- •3 Использование класса сВох
Определение класса сВох
После щелчка на соответствующем знаке + слева от имени Box в представлении классов раскроется древовидное представление, и вы увидите, что класс СВох определен в проекте. В этом дереве отображаются все классы проекта.
Созданное определение класса СВох начинается с директивы препроцессора.
#pragma once
Она предназначена для предотвращения открытия и включения в исходный код этого файла компилятором более одного раза.
Обратите внимание на то, что #pragma once — это директива, специфичная для Microsoft, которая может не поддерживаться другими средами разработки. Если вы разрабатываете код, который, предположительно, должен компилироваться в разных средах, используйте следующую форму директивы заголовочного файла, чтобы получить тот же эффект.
// Файл заголовка Box.h
#ifndef BOX_H
#define BOX_H
// Код, который не должен включаться более одного раза,
// такой, как определение класса СВох
#endif
Важные строки здесь выделены полужирным шрифтом и соответствуют директивам, поддерживаемым компиляторами ISO/ASNI C++.
Файл Box.cpp , созданный мастером Class Wizard, содержит следующий код
Добавление переменных-членов
Сначала можете добавить закрытые переменные-члены m_Length, m_Width и m_Height. Для этого щелкните правой кнопкой мыши в представлении класса и выберите из контекстного меню пункт Add→Add Variable (Добавить→Добавить переменную). Затем укажите имя, тип и степень доступа для первого члена, который хотите добавить к классу, в диалоговом окне Add Member Variable Wizard (Мастер добавления переменных-членов).
Способ создания новой переменной-члена в диалоговом окне достаточно очевиден. Если вы указываете нижний предел значений переменной-члена, то должны также указать и верхний предел. Когда вы укажете эти пределы, определение конструктора в файле .срр будет изменено за счет добавления значения по умолчанию, равного нижнему пределу. По желанию можете добавить комментарий в нижнем поле ввода. После щелчка на кнопке ОК переменная добавляется к определению класса вместе с комментарием, если он был задан. Этот процесс потребуется повторить для двух других переменных-членов класса — m_Width и m_Height. Определение класса в файле Box.h затем изменяется и будет выглядеть так, как показано ниже.
Разумеется, по желанию можно вводить объявления этих членов вручную, непосредственно в коде. Вы также можете вручную удалить любую часть, созданную автоматически, но не забудьте при этом внести соответствующие изменения в файлы .h и .срр.
Если вы заглянете в файл Box.срр, то увидите, что мастер также добавил список инициализации в определение конструктора для переменных-членов, которые вы добавили, причем каждая переменная инициализируется нулем. Далее можете модифицировать конструктор, чтобы он делал то, что необходимо.
Определение конструктора
Вам нужно изменить объявление конструктора без аргументов, созданного в определении класса, так, чтобы он получал аргументы со значениями по умолчанию, поэтому сделайте так.
explicit CBox(double lv = 1.0, double wv = 1.0, double hv = 1.0);
Теперь вы готовы к реализации. Откройте файл Box.срр, если он еще не открыт, и измените определение конструктора.
Вспомните, что инициализаторы параметров функций-членов должны находиться только в объявлении члена, которое находится в определении класса, а не в определении самой функции. Если вы поместите их в определение функции, ваш код компилироваться не будет.
