- •Теоретические вопросы к экзамену к экзамену по курсу «Программирование и алгоритмизация»
- •А)Основные типы переменных в с. Б)Правила определения переменных и типов. В)Инициализация данных.
- •A)Время жизни и область видимости программных объектов.Б) Инициализация глобальных и локальных переменных
- •Операторы языка Си. Оператор выражение, составной оператор, операторы условного перехода
- •Оператор цикла for
- •Операторы цикла while и do … while
- •Указатели. Типизированные и нетипизированные.
- •Работа с файлами. Файловая переменная, открытие, закрытие файла.
- •Чтение и запись в файлы. Функция eof()
- •Определение и вызов функций. Фактические и формальные параметры.
- •Определение и вызов функций. Передача массивов и указателей на функции.
- •Бинарный поиск в упорядоченном массиве.
- •Сортировка массива на примере одного из алгоритмов.
- •Связанные списки: описание структуры, добавление и удаление элементов в односвязный линейный список.
- •Вставка узла
- •Удаление узла
- •Виды линейных списков: стек, очередь, дек.
- •Сущность методологии объектно-ориентированного программирования. Инкапсуляция. Наследование. Полиморфизм.
- •Дружественные функции класса.
- •Определение конструктора. Форматы вызова конструктора. Перегрузка конструкторов.
- •Наследование. Определение базового и производного классов.
- •Полиморфизм. Виртуальные функции.
- •Динамическое распределение памяти под объекты. Операторы new и delete. Динамическое выделение памяти
- •Функции operator new() и operator delete()
- •Шаблоны классов. Шаблоны классов
- •Использование шаблонов
- •Шаблоны функций.
- •Жизненный цикл программного продукта.
- •Основные процессы жизненного цикла.
- •Разновидности процесса разработки по.
- •Стадии разработки по
- •Действия при разработке тз
Дружественные функции класса.
Дружественные функции Дружественные функции – это функции, объявленные вне класса, но имеющие доступ к закрытым и защищенным полям данного класса Дружественная функция объявляется внутри класса с модификатором friend Дружественные функции не являются членами класса, поэтому им не передается указатель this Правило использования: Если нет важных доводов использовать дружественные функции – используйте вместо них члены класса Если важные доводы есть – подумайте, а действительно ли они так важны
Определение конструктора. Форматы вызова конструктора. Перегрузка конструкторов.
В объектно-ориентированном программировании конструктор класса (от англ. constructor, иногда сокращают ctor) — специальный блок инструкций, вызываемый при создании объекта.
Конструктор схож с методом, но отличается от метода тем, что не имеет явным образом определённого типа возвращаемых данных, не наследуется, и обычно имеет различные правила для рассматриваемых модификаторов. Конструкторы часто выделяются наличием одинакового имени с именем класса, в котором объявляется. Их задача — инициализировать члены объекта и определить инварианткласса, сообщив в случае некорректности инварианта. Корректно написанный конструктор оставит объект в «правильном» состоянии.Неизменяемые объекты тоже должны быть проинициализированы конструктором.
Термин «конструктор» также используется для обозначения одного из тегов, описывающих данные в алгебраическом типе данных. Это использование несколько отличается от описываемого в статье. Для дополнительной информации смотрите Алгебраический тип данных.
В большинстве языков конструктор может быть перегружен, что позволяет использовать несколько конструкторов в одном классе, причём каждый конструктор может иметь различные параметры.
дна из ключевых особенностей ООП — инкапсуляция: внутренние поля объекта напрямую недоступны, и пользователь может работать с объектом только как с единым целым, через открытые (public) методы. Каждый метод, в идеале, должен быть устроен так, чтобы объект, находящийся в «допустимом» состоянии (то есть когда выполняется инвариант класса), после вызова метода также оказался в допустимом состоянии. И первая задача конструктора — перевести поля объекта в такое состояние.
Вторая задача — упростить пользование объектом. Объект — не «вещь в себе», ему часто приходится требовать какую-то информацию от других объектов: например, объект File, создаваясь, должен получить имя файла. Это можно сделать и через метод:
File file;
file.open("in.txt", File::omRead);
Но удобнее открытие файла сделать в конструкторе:[1]
File file("in.txt", File::omRead);
[править]Виды конструкторов
Некоторые языки программирования различают несколько особых типов конструкторов:
конструктор по умолчанию — конструктор, не принимающий аргументов;
конструктор копирования — конструктор, принимающий в качестве аргумента объект того же класса (или ссылку из него);
конструктор преобразования — конструктор, принимающий один аргумент (эти конструкторы могут вызываться автоматически для преобразования значений других типов в объекты данного класса).
Деструктор
#include <iostream>
using namespace std;
class NameOfClass
{
private:
int a;
public:
NameOfClass(int m);
~NameOfClass();
};
NameOfClass::~NameOfClass()
{
cout << this->a << endl;
}
NameOfClass::NameOfClass(int m)
{
a = m;
}
Дестру́ктор — специальный метод класса, служащий для деинициализации объекта (например освобождения памяти).