Скачиваний:
21
Добавлен:
28.03.2021
Размер:
118.76 Кб
Скачать

Министерство образования Республики Беларусь

Министерство образования Республики Беларусь

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра эконмической информатики

Объектно-ориентированное программирование

Лабораторная работа №1

“Классы и объекты в языке C++”

Вариант 16

Выполнила: Студентка группы

972303

Рушева Маргарита

Владиславовна

Проверила: Григорьева Юлия

Юрьевна

Минск, 2020

1 Цель лабораторной работы

Изучить структуру класса, атрибуты доступа к компонентам класса; рассмотреть принцип работы конструкторов (с параметрами, без параметров, с параметрами по умолчанию, конструктора копирования), деструкторов при работе с объектом, статические и константные данные и методы класса.

2 Теория по лабораторной работе

КЛАСС в объектно-ориентированном программировании, представляет собой шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализация полей-переменных и реализация поведения функций или методов. Объявление класса начинается с ключевого слова class. Объявление класса синтаксически подобно объявлению структуры. Основное отличие между С++-структурой и С++классом состоит в том, что по умолчанию элементы класса являются закрытыми, а элементы структуры — открытыми. В остальном же структуры и классы имеют одинаковое назначение. И классы, и структуры могут иметь сочетание открытых и закрытых элементов, могут использовать наследование и могут иметь функции-элементы. С++-программисты тип class используют главным образом для определения формы объекта, который содержит методы-элементы и данные, а тип struct — для создания объектов, которые содержат только элементы данных.

ОБЪЕДИНЕНИЕ (UNION) – тип данных, переменная которого может хранить (в разное время) объекты различного типа и размера. В результате появляется возможность работы в одной и той же области памяти с данными различного вида. Для описания объединения используется ключевое слово union. В языке С++ класс, определяемый посредством ключевых слов struct, class, union, включает в себя методы и данные, создавая новый тип объектов. Компоненты класса имеют ограничения на доступ.

Обычно данные класса имеют атрибут доступа private или protected, а методы – public. Значения атрибутов доступа:

private – элемент класса с атрибутом private может использоваться только методами собственного класса и функциями-«друзьями» этого же класса;

protected – тот же доступ, что и private, но дополнительно элемент класса может использоваться методами и функциями-«друзьями» производного класса, для которого данный класс является базовым;

public – элемент класса может использоваться любой функцией, т. е. защита на доступ к элементу снимается.

Элементы структуры (struct) и объединения (union) по умолчанию имеют доступ public.

Использование функций для установки начальных значений полей объекта часто приводит к ошибкам. КОНСТРУКТОР - функция, позволяющая инициализировать объект в процессе его декларирования (определения). Конструктор является элементом класса и имеет то же имя, что и класс. Конструктор может иметь и не иметь аргументы, но он никогда не возвращает значение (даже типа void). Класс может иметь несколько конструкторов, что позволяет использовать несколько различных способов инициализации объектов. Конструктор вызывается при создании объекта.

Конструктор, у которого все аргументы заданы по умолчанию, называется КОНСТРУКТОРОМ ПО УМОЛЧАНИЮ, т. е. конструктором, который можно вызывать без указания каких-либо аргументов.

Противоположные действия, по отношению к действиям конструктора, выполняет МЕТОД-ДЕСТРУКТОР или метод-разрушитель, который уничтожает объект. Деструктор может вызываться явно или неявно. Деструктор не может иметь аргументы, возвращать значение и наследоваться.

Подобно конструкторам деструкторы не возвращают значений, следовательно, в их объявлениях отсутствует тип возвращаемого значения. В отличие от конструкторов, деструкторы не могут иметь параметров.

УКАЗАТЕЛЬ THIS — это неявный параметр, принимаемый всеми методами-элементами класса. В любом методе-элементе класса указатель this можно использовать для ссылки на вызывающий объект.

Основные свойства и правила использования указателя this:

− каждый новый объект имеет свой скрытый указатель this;

− указатель this указывает на начало своего объекта в памяти компьютера;

− указатель this не надо дополнительно объявлять;

− указатель this передается как скрытый аргумент во все нестатические (т. е. не имеющие спецификатора static) компоненты-методы;

− указатель this является локальной переменной, которая недоступна за пределами объекта;

− можно обращаться к указателю this непосредственно в виде this или *this.

Ключевое различие между статической локальной и глобальной переменными состоит в том, что статическая локальная переменная известна только блоку, в котором она объявлена, а глобальная известна всему файлу. Таким образом, статическую локальную переменную в некоторой степени можно назвать глобальной переменной, которая имеет ограниченную область видимости. Чтобы объявить статическую переменную, достаточно предварить ее тип ключевым словом static. Локальные static-переменные инициализируются только однажды, в начале выполнения программы, а не при каждом входе в функцию, в которой они объявлены.

Соседние файлы в папке лабы салапура