Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ Программирование и основы алгоритмизации...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.5 Mб
Скачать

Обслуживающие функции-утилиты

обслуживают другие функции-элементы класса. Нет необходимости относить их к интерфейсу. Помещают в закрытую часть класса. Вызов – через интерфейс.

Конструкторы

Автоматически вызываются при создании объектов и инициализируют их параметры (данные-элементы). Если конструктора нет, он создается автоматически, но создаваемый объект имеет неопределенные параметры, т.е. неизвестно, какие. Тогда параметры объекта нужно инициализировать после его создания. Поэтому технологично предусматривать в классе конструктор, причем конструктор с умолчанием. А для задания требуемых параметров объекту необходимо переопределять конструктор.

class time {

public:

time(int=0, int=0, int=0);

void settime(int, int, int);

private:

int h, m, s;

};

//----------------------------------------------------

//переопределение конструктора

time::time(int hr, int mr, int sr)

{ settime(int hr, int mr, int sr); }

//----------------------------------------------------

void time::settime(int hr, int mr, int sr)

{ h=………..

m=……………

s=……….

}

//----------------------------------------------------

void main()

{ time t1, //все параметры – по умолчанию (нулевые)

t2(4), //заданы часы

t3(21,52), //заданы часы, минуты

t4(5,23,24), //все заданы

t5(25,67,75);//задаются нулевые

……………..

}

В скобках – список инициализации элементов. Эти начальные значения передаются в конструктор. Но если в вызове конструктора нет начальных значений, то благодаря нулевым значениям по умолчанию объект будет находиться в непротиворечивом состоянии.

//------------------------------------------------

Для каждого класса может существовать только один конструктор с умолчанием. Он или не имеет параметров, или все параметры имеют значения по умолчанию.

Конструктор с умолчанием – тот, который можно вызвать без параметров.

Windows-программы в Builder

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

Среди функций есть главная – WinMain. Она и выполняется после начала работы программы. WinMain очень короткая и выполняет только некоторые подготовительные операции, необходимые для начала работы программы. Далее работа программы определяется происходящими событиями в объектах-компонентах и реакцией на них объектов-компонентов.

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

Следовательно, программы в Builder строятся по модульному принципу.

Для скрытия информации текст каждого модуля формы разделяют на заголовочный файл (.h), который содержит объявления классов, функций, типов, переменных и т.д., и файл реализации (.cpp), в котором содержатся определения функций.

На основе написанного кода создается выполняемый файл (модуль) в результате выполнения нескольких этапов.

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

  2. Затем работает компилятор. Он переводит тексты модулей в машинный (объектный) код и для каждого исходного файла (.cpp) создает объектный файл (.obj).

  3. После окончания работы компилятора работает компоновщик, который объединяет объектные файлы в единый загрузочный выполняемый модуль (.exe).

  4. Выполняемый модуль (.exe) запускается на выполнение.

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