Лекции_Классы
.pdf#define |
Определение макроса |
|
#undef |
Отмена определения макроса |
|
#include |
Включение Об-заголовка |
|
#if |
Компил-я, если выражение истинно |
|
#ifdef |
Компил-я, если макрос определен |
|
#ifndef |
Компил-я, если макрос не определен |
|
#else |
Компил-я, если выражение в if ложно |
|
#elif |
Составная Директ else/if |
|
#endif |
Оконч-е группы Компил-и по условию |
|
#error |
выдает сообщение и завершает Комп-ю |
|
#pragma |
для выдачи дополнительных указаний |
Компилятору. |
Например, не выдавать предупреждений при Компиляции, или вставить дополнительную И для отладчика. Конкретные возможности директивы #pragma
у разных Компиляторов различные.
Пример:
#ifndef unix
#error "Программу можно компилировать только для unix!«
#endif
Методика отладки П
Категории Ошибок:
•Синтаксические Ошибки – выявляются на этапе Компил-и.
•Логические Ошибки (алгоритмические) ?!?
•Информационные Ошибки – вв/выв, переполнение разрядной сетки К
(тип int …), деление на 0 и др.
Синтаксические Ошибки
Иногда неадекватная реакция Комп-ра: { }, отсутствие скобки обнаруживается через множество строк Кода П.
Рекомендация: набирать { }, а затем вводить строки П.
41
Логические Ошибки (алгоритмические) – наиболее трудно обнаруживать и исправлять, некоторые приводят к тяжелым последствиям
Выявляются Логические Ошибки:
•на этапе отладки,
•при использовании П.
Методика отладки П
1.Компиляция каждого Файла *.срр;
2.Компиляция и компоновка всех Файлов
*.срр – создание *.ехе-Файла;
3.Обработка сообщений об Ошибках:
Окно Message: “Error”, “Warning”
Устранение логических Ошибок
Использование встроенного Отладчика:
Пошаговое выполнение П;
Просмотр значений переменных
влюбом месте П.
Тестирование П-го Проекта
Тесты готовятся с начала разработки А !
Тест-е с заранее подготовленными наборами Д-примеров:
• Нормальный режим, Д:
• Граничные случаи,
• Исключительные случаи
Требования к тестам:
•Набор тестов д.б. достаточным, чтобы показать выполнение всех требований П-го Проекта,
•Обеспечить полную проверку П – тест-е всех ветвей, имеющихся в П,
•Тесты д.б. простыми, удобными для анализа исходных и выходных Д
42
Репетиционный тест по теме «ООП, классы в С++»
1.Концепции ООП:
_________________________________________________________________________________
2.Способы доступа к элементам класса
_________________________________________________________________________________
3.Если Оо – объект класса ААА, рОо – указатель на Оо, то запишите вызов: public-функции
f ( ) ________________ , вызов Констр-ра________________ , вызов Дестр-ра _______________ , вызов private-функции fun( ) ______________________________________________________
4. Какие из следующих ключевых слов используются только с классами: this, |
float, cout, |
|||||
class, |
operator, |
extern, |
friend, |
static, |
virtual, |
cin, |
protected ? |
|
|
|
|
|
5.В каком случае производный класс может не иметь Констр-ра ?
6.Запишите прототип функции для перегрузки бинарной Операции «+» в классе ВВВ:
7.Как вызывается виртуальная фун-я ?
8.На какие группы можно разделить ошибки в Программах? Приведите примеры ошибок в этих группах.
9.Укажите средства реализации принципа наименьших привилегий в С++.
43