- •Лабораторная работа.4. Знакомство со средой разработки. Основы создания классов
- •Среда разработки Visual Studio 2005. Hello new word!
- •Вывод результатов компиляции и диагностики приложения
- •Инструментарий отладки Visual Studio
- •Использование точек останова
- •Контроль значений переменных при пошаговом выполнении
- •Классы и объекты
- •Краткие сведения по теме
- •Использование класса
- •Определение методов класса
- •Общее задание 1. Пример программы
- •Вложенные классы
- •Задания
- •Индивидуально задание 1: Структура-пара
- •Индивидуально задание 2: Структуры и классы
- •Требования к отчетам по лабораторной работе №4
- •Общее задание для проведения лабораторной работы:
- •Сведения по теме
- •Перегрузка операций
- •Перегрузка операций внешними функциями
- •Перегрузка операций методами класса
- •Функции-друзья класса
- •Конструкторы и деструктор
- •Конструкторы и параметры
- •Константы в классе
- •Поля-массивы в классе
- •Операция индексирования
- •Статические элементы класса
- •Подсчет объектов класса
- •Индивидуальные задания
- •Задание по теме: Конструкторы и перегрузка операций
- •Задание по теме: Массивы и константы в классе
Основы создания программ в Си |
Page 33 of 58 |
представляют собой сумму, начисленную за отработанные дни, и надбавки, то есть доли от первой суммы. Удержания представляют собой отчисления в пенсионный фонд (1 % от начисленной суммы) и подоходный налог. Подоходный налог составляет 13 % от начисленной суммы без отчислений в пенсионный фонд.
40. Реализовать класс Cursor. Полями являются координаты курсора по горизонтали и вертикали
—целые положительные числа, вид курсора — горизонтальный или вертикальный, размер курсора — целое от 1 до 15. Реализовать методы изменения координат курсора, изменения вида курсора, изменения размера курсора, метод гашения и восстановления курсора.
Требования к отчетам по лабораторной работе №4
Отчет должен содержать описание решения всех индивидуальных заданий в следующем виде:
1.Текст задания;
2.Блок схема выполнения программы с использованием реализованных классов;
3.Код программы;
4.Текст результата выполнения.
5.Проект среды разработки Visual Studio 2005 (со всеми папками и файлами структуры проекта)
Отчеты принимаются либо в электронном виде в документе не старше Word 2003.
Либо в рукописном варианте.
Лабораторная работа.5. |
Конструкторы |
и |
перегрузка |
операций |
|
|
|
Лабораторная работа посвящена изучению техники программирования перегруженных операций как внешними функции, так и методами класса. Рассматриваются функции-друзья класса. Изучается техника программирования конструкторов. Дополнительно изучаются статические элементы класса, поля-массивы и константные поля.
Общее задание для проведения лабораторной работы:
Представленные в описании тем примеры 5.1-5.7 объявления и использования структур, классов, операторов и функций должны быть собраны в один проект Ms VisualStudio 2005, скомпилированы и продемонстрированы в работоспособном варианте.
Сведения по теме
В C++ разрешено перегружать встроенные операции — это одно из проявлений полиморфизма. Перегрузка операций не является обязательной в объектно-ориентированном программировании
Основы создания программ в Си |
Page 34 of 58 |
— в языках Java и С# она отсутствует. Однако наличие перегрузки операций в C++ обеспечивает дополнительный уровень удобства при использовании новых типов данных.
При программировании нового типа данных желательно объявлять объекты нового типа аналогично встроенным — формы инициализации не должны отличаться от форм инициализации объектов встроенного типа. Эти возможности обеспечивают конструкторы.
Перегрузка операций
При перегрузке операции нужно учитывать следующие ограничения.
1.Запрещена перегрузка следующих операций:
•sizeof() — определение размера аргумента;
•. (точка) — селектор компонента объекта;
•?: — условная операция;
•:: — указание области видимости;
•.* — выбор компонента класса через указатель;
•# и ## — операции препроцессора.
2.Операции можно перегружать только для нового типа данных — нельзя перегрузить операцию для встроенного типа. В C++ новый тип данных можно образовать с помощью конструкций enum, union, struct и class.
3.Нельзя изменить приоритет перегружаемой операции и количество операндов. Унарная операция обязана иметь один операнд (операции ++ инкремента и – декремента являются исключением), бинарная — два операнда; не разрешается использовать параметры по умолчанию. Единственная операция, которая не имеет фиксированного количества операндов, — это операция вызова функции (). Операции «+», «-», «*», «&» допускается перегружать и как унарные, и как бинарные.
4.Операции можно перегружать либо как независимые внешние функции (только такой способ перегрузки допустим для enum), либо как методы класса. Четыре операции:
•присваивания =;
•вызова функции ();
•индексирования [ ];
•доступа по указателю ->;
допускается перегружать только как методы класса. Эти операции в принципе нельзя перегрузить для конструкции enum.
5. Если операция перегружается как метод класса, то левым (или единственным) аргументом обязательно будет объект класса, для которого перегружается операция.
Прототип функции-операции выглядит следующим образом: