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

Структура файла реализации модуля формы (“Unit1.Cpp”)

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

#include <vcl.h> //включаются

#pragma hdrstop //автома-

#include “Unit1.h”//тически

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

#pragma package(smart_init) //включается автоматически

#pragma resource “*.dfm” //включается автоматически

//сюда можно поместить дополнительные директивы препроцессора

//(в частности, #include), не включаемые в файл автоматически

TForm1* Form1;//указатель Form1 на объект формы – включается автоматически

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

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

__fastcall TForm1::TForm1(TComponent* Owner)

:TForm(Owner)

{ //тело конструктора – пустое. Здесь можно поместить операторы,

//которые должны выполняться при создании формы

}

// Owner – указатель на владельца формы – приложение. Владелец формы – это

// объект, отвечающий за уничтожение после использования. Здесь могут

// быть объявлены глобальные переменные, доступные в данном модуле;

//будут доступны в других модулях, если будут объявлены там с extern.

//Здесь же должны быть реализации всех функций, объявленных в заголовочном

// файле, а также могут быть реализации любых дополнительных функций, не

//объявленных ранее. Будут доступны в других модулях, если там содержатся

//их прототипы.

// определение обработчика события – щелчка на кнопке

void __fastcall Button1Click(TObject* Sender)

{//тело обработчика – пустое

}

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

Примечания.

1) Если функция не принадлежит классу формы, то в ней:

Form1->Label1->Caption=…….;

2) Если функция принадлежит классу формы, то в ней:

Label1->Caption=…….;

Области видимости (или области действия) переменных в блоках. Время жизни переменных

Область видимости переменной обозначает ту часть программы, в пределах которой возможен доступ к данной переменной. Большинство переменных являются локальными – т.е. доступ к ним возможен только в пределах того блока, в котором они объявлены. Глобальные переменные видимы повсюду в программе. К глобальным переменным может обращаться любая функция программы.

Блок – это фрагмент программы, заключенный в “{}”. Следовательно, функция – также блок.

Если переменная объявлена внутри блока, то она – локальная переменная, и её можно использовать до первой ‘}’. Переменные, объявленные вне какого-либо блока, являются глобальными, и имеют область видимости файл.

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

Пример. int i=3, k=5; //глобальные переменные

{ int i=10, j=2; //объявление переменных внешнего блока

----------------- //видны переменные j, k и

----------------- // переменная i внешнего блока

{ int i=15; //объявление переменной внутреннего блока

----------- // видны переменные j, k и

----------- // переменная i внутреннего блока

}

------------------ // видны переменные j, k и

------------------ // переменная i внешнего блока

}

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

Время жизни локальной переменной определяется временем выполнения блока. Она создается в момент входа в блок и разрушается в момент выхода из блока. Следовательно, она не может сохранять какие-либо значения в промежутках между выполнением операторов блока. Такие переменные относятся к автоматическим (auto) переменным.

Чтобы локальные переменные существовали все время работы программы и инициализировались только один раз, они объявляются статическими:

static int i=15; // если static int i; , то инициализируется нулем

В статических переменных можно накапливать информацию, например, подсчитывать число обращений к блоку.

Чтобы получить доступ к одноименной глобальной переменной во внутреннем блоке: i=::i+1;

Но так нельзя получить доступ к одноименной переменной, объявленной во внешнем блоке.

Глобальные переменные постоянно занимают память во время выполнения программы. Память для локальных переменных выделяется только на время их нахождения в области видимости.