exam Flashcards
Что такое объект?
Объект — это экземпляр класса, или его копия, которая находится в памяти компьютера. Например, когда вы создаёте переменную типа String и присваиваете ей значение «Строка», то в памяти создаётся экземпляр класса String. обладающий своими свойствами и методами
Определение системы и три примера систем
это совокупность взаимосвязанных элементов, образующих определенное единство. компьютерная, телекоммуникационная, автомобильная
жизненый цикл объекта
включает в себя создание, использование, уничтожение и повторное использование объекта. создаются при помощи new(выделяет блок динамической памяти) и удаляется при помощи delete(сначала деструктор, потом возвращает память)
взаимодействие объектов, три примера
процесс взаимодействия между различными объетами в системе. пример: отправка сообщений между объектами, вызов методов другого объекта, передача данных между объектами
Класс. Назначение и синтаксис описания
это шаблон или описание, определяющие структуру и поведение объектов данного класса. Синтаксис объявления класса похож на описания структуры:
class<имя_класса>
{ закрытые элементы класса
private:
<защищенные объекты класса}
public:</имя_класса>
<открытые>
}
<список_объектов>
</список_объектов></открытые>
Жизненный цикл виртуального объекта и его реализация на языке С++.
Жизненный цикл виртуального объекта включает создание, инициализацию, использование и уничтожение объекта. Реализация на языке C++ включает создание класса с виртуальными методами и использование наследования.
Архитектура системы. Иерархия объектов.
Архитектура системы - это общая структура и организация элементов и связей объектов в системе. Иерархия объектов отображает отношения между классами и объектами в системе.
Программа – система.
Программа - система - это программа, состоящая из взаимосвязанных объектов, работающих вместе для достижения определенной цели.
Наследование. Реализация наследования на языке С++
Наследование - это механизм объектно-ориентированного программирования, который позволяет создавать новые классы на основе существующих классов. Реализация наследования в C++ происходит с помощью ключевого слова “class” и указания базового класса.
Управление доступом при наследовании.
Управление доступом при наследовании в C++ осуществляется с помощью модификаторов доступа: public, private, protected. Public позволяет доступ извне, private - только внутри класса, protected - доступ из производных классов.
Инкапсуляция
Инкапсуляция - один из принципов объектно-ориентированного программирования, который заключается в объединении данных и методов работы с ними в одном классе, и скрытии от других классов деталей реализации
Полиморфизм
Полиморфизм - возможность объектов классов-наследников использовать методы родительского класса, при этом каждый наследник может переопределять эти методы по-своему.
Управление доступом к элементам класса.
Управление доступом к элементам класса - в языке программирования определяется, кто и каким образом имеет доступ к элементам класса (полям и методам), используя модификаторы доступа: public, private, protected
Конструктор и деструктор объекта
Конструктор и деструктор объекта - специальные методы класса, которые вызываются при создании (конструктор) и уничтожении (деструктор) объекта
Параметризированные конструктору.
конструкторы, которые принимают на вход параметры и инициализируют объект на их основе
Конструктор копии
Конструктор копии - специальный метод класса, который создает копию объекта
Объявление объекта и доступ к его элементам
объявление объекта происходит с помощью ключевого слова new, доступ к его элементам осуществляется через оператор точка
Указатели и ссылки на объект
указатель представляет адрес объекта в памяти, а ссылка представляет собой псевдоним объекта
Указатель this
ключевое слово, которое ссылается на текущий объект при работе внутри его методов
Присвоение объектов
копирование значений одного объекта в другой, создание новой ссылки на объект или увеличение счетчика ссылок
Объекты в качестве возвращаемого значения функции
функция может возвращать объекты как своё значение.
Встраиваемая функция
функция, которая компилируется прямо в том месте, где она вызвана, без создания отдельного блока кода
Дружественная функция
функция, объявленная вне класса, но имеющая доступ ко всем членам этого класса.
Дружественный класс
класс, который имеет доступ ко всем членам другого класса, как если бы он был его другом.
Операторы new и delete -
операторы в языке программирования C++, используемые для выделения и освобождения памяти во время выполнения программы.
Защищенные члены класса -
члены класса, к которым могут обращаться только сам класс и его производные классы
Множественное наследование -
возможность для класса наследовать от нескольких родительских классов.
Виртуальные базовые классы -
базовый класс, от которого наследуют другие классы, но он может быть виртуальным при наследовании.
Указатель на объект производного класса
- указатель, который указывает на объект производного класса, но может быть использован для работы с базовым классом.
Виртуальные методы. Наследование виртуальных методов -
виртуальный метод позволяет переопределить его в производном классе, а наследование виртуальных методов позволяет классам наследникам использовать методы родительского класса.
Чисто виртуальные функции -
это функции в абстрактном классе, которые не имеют определения в самом классе, а только объявление. Абстрактный класс является классом, который содержит хотя бы одну чисто виртуальную функцию и не может быть инстанциирован.
Перегрузка функций -
это возможность создавать функции с одинаковым именем, но с разными параметрами.
Перегрузка унарных операторов -
это возможность определения поведения унарного оператора (+, -, ++, – и т.д.) для пользовательских типов данных.
Перегрузка бинарных операторов -
это возможность определения поведения бинарного оператора (+, -, *, / и т.д.) для пользовательских типов данных.
Перегрузка оператора индексации массивов [ ]
- позволяет определить доступ к элементам объекта как к элементам массива.
Аргументы, передаваемые функции по умолчанию
- это значения, которые будут использованы, если при вызове функции данные аргументы не будут переданы.
Определение адреса перегруженной функции -
адрес функции можно взять с помощью указателя на функцию, используя имя функции без круглых скобок.
Класс vector -
это динамический массив, реализованный в стандартной библиотеке C++, который обеспечивает удобное управление элементами и автоматическое изменение размера при добавлении или удалении элементов.
Класс string -
это класс в стандартной библиотеке C++, который представляет строку символов и предоставляет удобные методы для работы с ней, такие как конкатенация, поиск подстрок, сравнение и т.д.
Класс map и multimap
Класс map представляет собой ассоциативный контейнер, который хранит элементы в виде пар ключ-значение, где каждому ключу соответствует определенное значение. Класс multimap подобен map, но позволяет хранить неуникальные ключи.
Объявление элементов класса спецификацией static.
Объявление элементов класса с ключевым словом static позволяет объявить статические элементы, которые принадлежат классу, а не конкретному экземпляру класса.
Объявление элементов класса спецификацией const.
Объявление элементов класса с ключевым словом const позволяет объявить константные элементы, которые нельзя изменять после их определения.
Шаблон функции
Шаблон функции позволяет создать универсальную функцию, которая может принимать и возвращать различные типы данных без необходимости перегрузки функции для каждого типа.
Шаблон класса
Шаблон класса позволяет создать универсальный класс, который может работать с различными типами данных без необходимости создания отдельного класса для каждого типа.
Контейнеры и итераторы
Контейнеры представляют собой структуры данных, которые используются для хранения коллекций объектов. Итераторы используются для доступа и манипуляции элементами контейнера.
Контейнер – динамический массив
Динамический массив – это контейнер, который может изменять свой размер во время выполнения программы, в отличие от статического массива, размер которого определяется на этапе компиляции
Контейнер – ассоциативный список
Ассоциативный список – это контейнер, который хранит элементы в виде пар ключ-значение, где доступ к элементам осуществляется по ключу, а не по индексу как в массиве.
Исключительные ситуации
Исключительные ситуации (исключения) используются для обработки ошибок или нестандартных ситуаций в программе, позволяя более гибко управлять потоком выполнения программы
Приведение типов
Приведение типов позволяет преобразовывать значение одного типа в значение другого типа данных, например, преобразование целого числа в число с плавающей запятой
Сигналы и обработчики
Сигналы и обработчики используются для реализации асинхронного программирования в С++, позволяя отправлять сигналы или события и связывать их с соответствующими обработчиками
Ввод-вывод в С++
Ввод-вывод в С++ осуществляется с помощью потоков, таких как объекты классов istream (для ввода) и ostream (для вывода)
Форматированный ввод-вывод данных.
Форматированный ввод-вывод данных позволяет задавать определенный формат вывода данных, например, число с определенным количеством знаков после запятой.