- •Методические указания
- •090303 «Информационная безопасность автоматизированных систем» очной формы обучения
- •Указания по технике безопасности при выполнении лабораторных работ
- •2 Курс Лабораторная работа № 1 Реализация строкового калькулятора
- •Теоретическая справка
- •Лабораторная работа № 2
- •Теоретическая справка
- •Лабораторная работа № 3 Анализ строки
- •Лабораторная работа № 4 Преобразование форматов представления данных
- •Теоретическая справка
- •Лабораторная работа № 5
- •Теоретическая справка
- •Лабораторная работа № 6 Наследование и полиморфизм
- •Теоретическая справка
- •Лабораторная работа № 7 Статические данные и функции классов
- •Теоретическая справка
- •Лабораторная работа № 8 Перегрузка операций
- •Теоретическая справка
- •3 Курс Лабораторная работа № 1 Реализация программы с использованием контейнерного класса stack stl
- •Теоретическая справка
- •Лабораторная работа № 2 Ассоциативные контейнеры stl
- •Теоретическая справка
- •Лабораторная работа № 3 Наследование и полиморфизм в языке c#
- •Лабораторная работа № 4 Коллекции в языке c#
- •Теоретическая справка
- •Лабораторная работа № 5 Перегрузка операций в языке c#
- •Теоретическая справка
- •Лабораторная работа № 6 Интерфейсы и их реализация в c#
- •Теоретическая справка
- •Лабораторная работа № 7 Делегаты и события в языке c#
- •Теоретическая справка
- •Лабораторная работа № 8 Использование шаблонов в языке c# 2.0
- •Теоретическая справка
- •Библиографический список
- •Содержание
- •2 Курс 2
- •3 Курс 15
- •Методические указания
- •090303 «Информационная безопасность автоматизированных систем» очной формы обучения
- •394026 Воронеж, Московский просп., 14
Лабораторная работа № 7 Статические данные и функции классов
Цель работы: Получить практические навыки работы со статическими данными и функциями-членами класса.
Задание: Создать класс, экземпляры которого возможно создавать с помощью статической функции этого класса. Реализовать счетчик созданных объектов класса при помощи статических данных-членов.
Инструкции к выполнению:
Запретить создание объектов класса вне статической функции, предназначенной для этого.
Теоретическая справка
Описатель static в С++ имеет различное назначение в зависимости от контекста, в котором он применен.
Переменные и функции, объявленные вне класса и вне тела функции с описателем static, имеют область действия, ограниченную файлом, в котором они объявлены.
Переменные, объявленные как static внутри функции, видимы только внутри этой функции, но сохраняют свои значения после выхода из функции и инициализируются только при первом обращении к функции.
Компоненты класса также могут объявляться с описателем static, такие компоненты - данные являются общими для всех экземпляров объектов этого класса и размещаются в памяти отдельно от данных объектов класса. Доступ к static - компонентам класса возможен по имени, уточненному именем класса (именем типа) или именем объекта этого класса, причем к static - компонентам класса можно обращаться до создания экземпляров объектов этого класса. Статическое данное - член класса должно быть обязательно инициализировано вне описания класса.
Лабораторная работа № 8 Перегрузка операций
Цель работы: Научиться использовать механизм перегрузки операций при разработке классов с помощью языка C++.
Задание: Разработать класс «вектор», координаты которого представить целочисленным массивом произвольного размера. Перегрузить для этого класса операции + (как сложение векторов), – (как вычитание векторов), * (как умножение вектора на число).
Инструкции к выполнению:
Размер вектора задавать в конструкторе класса.
Предусмотреть методы для задания и изменения значений координат.
При сложении и вычитании векторов выполнять проверку на соответствие их размеров.
Для хранения координат вектора использовать динамическую память.
Ввод и вывод информации производить в функции main.
Теоретическая справка
В языках программирования определена семантика операций, выполняемых над базовыми (предопределенными) типами данных, например, если x, y и z - переменные типа float, то запись x = y + z; предполагает интуитивно очевидные действия, сложение x и y и присваивание переменной z полученной суммы.
Желательно было бы и для типов, определяемых в программе, в том числе для классов, определить семантику и алгоритмы операций сложения, вычитания, умножения и т.д., чтобы иметь возможность вместо вызова соответствующих функций записывать просто x + y и в случае, когда x и y являются объектами некоторых классов. В C++ это достигается переопределением имеющихся в языке операций для других типов данных.
Переопределенная операция объявляется так:
тип_результата operator знак_операции (формальные параметры)
{ описание_алгоритма_выполнения_операции }