
- •Абстрактные классы.
- •Аргументы функций по умолчанию.
- •Арифметические операции с указателями и с указателями на массивы.
- •Ввод-вывод в символьные массивы.
- •Виртуальные классы. Порядок вызова конструкторов и деструкторов.
- •Виртуальные функции.
- •Виртуальные функции-члены.
- •Виртуальный деструктор. Абстрактные классы.
- •Динамическая память. Указатели и массивы. Ссылочный тип.
- •Доступ к глобальным переменным, скрытым локальными переменными с тем же именем (оператор ::).
- •Доступ к членам базовых классов внутри производного класса.
- •Доступ к элементам массива. Вычисление размера массива. Многомерные массивы.
- •Дружественные классы и функции.
- •Закрытые, защищенные и открытые элементы класса.
- •Иерархия классов. Иерархия наследования классов.
- •Инициализация и разрушение (конструкторы и деструкторы).
- •Инициализация массивов по умолчанию. Явная инициализация массивов.
- •Инициализация безразмерных массивов
- •1. Инкапсуляция
- •2. Полиморфизм
- •3. Наследовние
- •22.Использование new и delete на примере динамических массивов, стеков, очередей.
- •Указатель this
- •Указатели на структуру
- •Массивы структур
- •Классы и объекты. Класс как структура.
- •Классы. Спецификаторы доступа public, protected, private.
- •Константные (const) и изменяемые (mutable) члены класса.
- •Конструктор копирования для контейнерного класса.
- •Конструкторы и деструкторы.
- •Конструкторы и способы обращения к ним.
- •Логические операции. Инкремент и декремент. Арифметические операции.
- •Объявление переменной массива
- •Множественное наследование.
- •Модификатор константы. Модификатор volatile. Модификатор const
- •Модификатор volatile
- •Модификатор const
- •Модификатор volatile
- •Объединения: синтаксис и правила.
- •Объединения: создание простого объединения. Использование enum.
- •41. Объекты стандартного предопределенного потокового ввода-вывода cin, cout, cerr, clog.
- •Объявление переменных указателей. Простые операторы с указателями.
- •Оператор if. Оператор if-else. Вложенные операторы if-else. Оператор if-else-if.
- •If (условие_истинно) оператор; else оператор;
- •If (условие_истинно)
- •Операторы динамического распределения памяти (new, delete).
- •Операции динамического распределения памяти.
- •Операции отношения и логические операции. Условная операция. Операции сравнения (Операции отношений)
- •Логические операции.
- •Операция присваивания. Приоритет операций.
- •Определение первичного класса.
- •Определение переменных указателей. Инициализация указателей.
- •Организация списка объектов различного типа. Техническая реализация
- •Параметризованная очередь. Параметризованный стек. Параметризованное бинарное дерево.
- •Int max_len; /* Максимальная длина стека */
- •Int top; /* Индекс элемента в вершине стека */
- •Параметризованный класс двухсвязного списка.
- •58. Перегрузка операций
- •59. Перегрузка для труктур
- •Передача значений параметров по умолчанию. Передача параметров по ссылке и ссылочные переменные.
- •Передача параметра по ссылке
- •Передача структур в функции. Создание массива структур.
- •63. Подставляемые функции (inline-функции).
- •Преобразования указателей на объекты
- •65. Приведите пример использования enum.
- •66. Приведите пример использования inline-функции.
- •67. Приведите пример использования аргументов функций по умолчанию.
- •68. Приведите пример использования арифметических операции с указателями.
- •69. Приведите пример использования виртуальных функций
- •70. Приведите пример использования вызова функций по значению и вызов по ссылке.
- •71. Приведите пример использования дружественных функции.
- •72. Приведите пример использования конструкторов и деструктора.
- •73.Приведите пример использования массива структур.
- •Приведите пример использования перегрузки функций.
- •81. Приведите пример использования указателей и массивов.
- •82. Приведите пример использования условного оператора
- •83.Приведите пример использования циклов for, while, do-while.
- •84. Приведите пример использования шаблонов функций.
- •Принципы организации позднего связывания.
- •Приоритет переменных с файловой и локальной областями действия. Операция уточнения области действия.
- •Производные классы. Доступ к полям и функциям базового класса.
- •88. Простой класс. Вложенные классы
- •Пространство имен. Операторы namespace и using. Пространство имен
- •Прототипы функций. Вызов функций по значению и вызов по ссылке. Область действия. Рекурсия.
- •91.Работа с файлами последовательного и произвольного доступа.
- •92.92.Переменные
- •Где объявляются переменные
- •Локальные переменные
- •Вопрос 95
- •96 Соглашения об именах
- •Тело класса и составные функции.
- •Указатели на массивы. Указатели на строки.
- •Использование указателя на символьную строку
- •Условный оператор. Оператор switch.
- •Формальные и фактические параметры. Массивы в качестве параметров. Аргумент типа void.
- •Способ передачи параметров в подпрограмму
- •110.Циклы for. Циклы while. Циклы do-while. Разница между циклами.
- •Цикл while ("пока") с постусловием
Оператор if. Оператор if-else. Вложенные операторы if-else. Оператор if-else-if.
Оператор C++ if позволяет вашим программам осуществлять проверку и затем на основании этой проверки выполнять операторы. Формат оператора if следующий:
if (условие_выполняется) оператор;
Обычно оператор if выполняет проверку, используя операцию сравнения C++. Если результат проверки является истиной, if выполняет оператор, который следует за ним.
В большинстве случаев вашим программам потребуется указать один набор операторов, выполняющийся, если условие истинно, и второй набор, выполняющийся, если условие ложно. Для указания операторов, которые должны выполняться, когда условие ложно, ваши программы должны использовать оператор else. Ниже приведен формат оператора else:
if (условие_истинно) оператор; else оператор;
Представление об if-else
По мере усложнения ваши программы будут проверять разные условия и выполнять один набор операторов, если условие истинно, и другой набор, если условие ложно. Для выполнения такой условной обработки программы используют операторы if-else, как показано ниже:
If (условие_истинно) оператор; else оператор;
Когда программе требуется выполнить несколько операторов, если условие ложно или истинно, вы должны сгруппировать связанные операторы внутри левой и правой фигурных скобок {}:
If (условие_истинно)
{ первый_оператор_для_истины; второй_оператор_для_истины; } else { первый_оператор_для_лжи; второй_оператор_для_лжи; }
Операторы динамического распределения памяти (new, delete).
Оператор C++ new позволяет вашим программам распределять память во время выполнения. Для использования оператора new вам необходимо указать количество байтов памяти, которое требуется программе. Предположим, например, что вашей программе необходим 50-байтный массив. Используя оператор new, вы можете заказать эту память, как показано ниже:
char *buffer = new char[50];
Говоря кратко, если оператор new успешно выделяет память, он возвращает указатель на начало области этой памяти. В данном случае, поскольку программа распределяет память для хранения массива символов, она присваивает возвращаемый указатель переменной, определенной как указатель на тип char. Если оператор new не может выделить запрашиваемый вами объем памяти, он возвратит NULL-указатель, который содержит значение 0. Каждый раз, когда ваши программы динамически распределяют память с использованием оператора new, они должны проверять возвращаемое оператором new значение, чтобы определить, не равно ли оно NULL.
Например, следующая программа использует оператор new для получения указателя на 100-байтный массив:
#include <iostream.h>
void main(void)
{ char *pointer = new char[100]; if (pointer != NULL) cout << "Память успешно выделена" << endl; else cout << "Ошибка выделения памяти" << endl; }
Для освобождения памяти с использованием оператора delete вы просто указываете этому оператору указатель на данную область памяти, как показано ниже:
delete pointer;
Следующая программа использует оператор delete для освобождения выделенной с помощью оператора new памяти:
#include <iostream.h>
#include <string.h>
void main(void)
{ char *pointer = new char[100]; strcpy(pointer, "Учимся программировать на языке C++"); cout << pointer << endl; delete pointer; }
По умолчанию, если ваша программа не освобождает выделенную ей память до своего завершения, операционная система автоматически освобождает эту память после завершения программы. Однако если ваша программа использует оператор delete для освобождения памяти по мере того, как она (память) становится ненужной, то эта память вновь становится доступной для других целей (возможно, для вашей программы, которая опять будет использовать оператор new, или для операционной системы).