- •Введение
- •Объектно-ориентированного программирования
- •1.3. Области видимости переменных и функций в
- •1.4. Основные рекомендации для разработки программ Стиль
- •Интерфейсы
- •Отладка
- •Тестирование
- •Производительность
- •Переносимость
- •2. Лабораторная работа № 1
- •2.1. Разработка алгоритма решения задачи Последовательность разработки алгоритма решения задачи.
- •2.3. Разработка интерфейса пользователя
- •2.4. Выбор визуальных объектов для стартовой формы
- •2.5. Задание свойств объектов
- •Создание меток и текстовых окон
- •2.6. Написание кода программы
- •2.7. Сохранение проекта
- •2.8. Компиляция программы
- •2.9. Отладка и тестирование программы
- •2.10. Задания для лабораторной работы № 1
- •2.11. Контрольные вопросы
- •3. Лабораторная работа № 2
- •3.1. Теоретический материал
- •If (условие) оператор;
- •Оператор разветвления. Форма записи структуры разветвления имеет вид:
- •If (условие) оператор1;
- •Оператор с составным условием. При составлении конструкции оператора условной передачи управления могут использоваться составные условия, в которых условия соединены логическими операциями
- •3.2. Примеры решения задач
- •3.3. Задания для лабораторной работы № 2
- •3.4. Контрольные вопросы
- •4. Лабораторная работа № 3
- •4.1. Теоретические сведения
- •4.2. Задания для лабораторной работы № 3
- •4.3. Контрольные вопросы
- •5. Лабораторная работа № 4
- •5.1. Теоретические сведения.
- •5.2. Задания для самостоятельного выполнения
- •5.3. Контрольные вопросы
- •6. Лабораторная работа № 5
- •6.1. Теоретический материал
- •Strcpy (Sp, “дополнительный текст”);
- •Библиотечные функции работы со строками типа char
- •Основные функции работы со строками типа AnsiString
- •6.3. Задания для самостоятельной работы
- •6.4. Контрольные вопросы
- •7. Лабораторная работа № 6
- •7.1. Рисование по пикселям
- •7.2. Рисование с помощью пера
- •Методы вычерчивания графических примитивов с помощью пера
- •Выбор метода решения задачи
- •Алгоритм решения задачи
- •Разработка интерфейса пользователя
- •Разработка кода программы
- •7.3. Рисование геометрических фигур
- •7.4. Задания для самостоятельного выполнения
- •7.5. Контрольные вопросы
- •Заключение
- •Библиографический список
- •Математические функции
- •Константы, используемые в математических выражениях
- •Тригонометрические функции
- •Арифметические и алгебраические функции
- •Функции перерасчета градусы-радианы
- •Компьютерные технологии
- •3 94006 Воронеж, ул. 20-летия Октября,84
1.3. Области видимости переменных и функций в
программах на C++ Builder
1. Переменные, объявленные в заголовочном файле модуля или в файле его реализации вне описания класса и функций, являются глобальными [1]. Они доступны везде внутри данного модуля. Для доступа к ним из внешних модулей в этих модулях должно быть повторено их объявление (без инициализации) с добавлением спецификации extern.
Функции, объявленные в заголовочном файле модуля вне описания класса, являются глобальными. Они доступны везде внутри данного модуля. Для доступа к ним из внешних модулей в этих модулях или надо повторить их объявление, или включить директивой #include в заголовочный файл того модуля, в котором функции описаны.
Функции, объявленные в файле реализации модуля, являются глобальными. Они доступны везде внутри данного модуля. Для доступа к ним из внешних модулей в этих модулях надо повторить их объявление.
Элементы (переменные и функции), объявленные в классе в разделе private, видимы и доступны только внутри данного модуля. При этом из функций, объявленных внутри класса, к ним можно обращаться непосредственно по имени, а из других функций – только со ссылкой на объект данного класса. Если в модуле описано несколько классов, то объекты этих классов взаимно видят элементы, описанные в их разделах private.
Элементы, объявленные в классе в разделе public, видимы и доступны для объектов любых классов и для других модулей, в которых директивой #include включен заголовочный файл данного модуля. При этом из объектов того же класса к ним можно обращаться непосредственно по имени, а из других объектов и процедур – только со ссылкой на объект данного класса.
В классах, помимо обсуждавшихся ранее, могут быть еще разделы protected – защищенные. Элементы, объявленные в классе в разделе prоtected видимы и доступны для любых объектов внутри данного модуля, а также для объектов классов – наследников данного класса в других модулях. Объекты из других модулей, классы которых не являются наследниками данного класса, защищенных элементов не видят.
Элементы, объявленные внутри функции или блока являются локальными, т. е. они видимы и доступны только внутри данной функции или данного блока. При этом время жизни переменных, объявленных внутри функции или блока, определяется временем активности данного блока. Сделать локальную переменную существующей постоянно можно с помощью спецификации static.
Переменные и функции, объявленные в головном файле проекта, являются глобальными для этого файла. Если требуется доступ к ним из других модулей, то для функций в них должны быть повторены их объявления, а для переменных – повторено объявление (без инициализации) со спецификацией extern.
Если во внутреннем блоке, обозначаемом как {}, объявлена переменная с тем же именем, что во внешнем блоке, или с тем же именем, что и глобальная переменная, то соответствующая внешняя или глобальная переменная в блоке не видна. В этом случае получить доступ к одноименной глобальной переменной можно только с помощью унарной операции разрешения области действия (::).
Более подробные сведения об областях видимости переменных и функций вы можете найти в [2].