- •1. Основы ооп. Понятие инкапсуляции, наследования и полиморфизма.
- •Ограничение на наследование
- •2. Класс в ооп и его основные компоненты.
- •Объявление класса
- •3. Перегрузка функций.
- •4. Уровни доступа к элементам класса.
- •5. Область видимости объектов, скрытие имен.
- •6. Динамическая память, функции работы с памятью.
- •7. Динамическая память, операции работы с памятью.
- •9. Передача аргументов в функцию по умолчанию.
- •10. Понятие класса, общая структура.
- •Объявление класса
- •11. Характеристика элементов-данных класса.
- •12. Характеристика методов класса. Использование операции привязки «::»
- •13. Указатель «this». Пример явного использования.
- •14.Функции-друзья класса.
- •15. Функции-конструкторы. Явный и косвенный вызов конструктора.
- •16. Функции-деструкторы.
- •17. Методы класса с атрибутом «const».
- •18. Статические методы и данные. Атрибут «static»
- •19. Указатели на компоненты класса
- •20. Наследование. Базовый и производный классы.
- •21.Инициализация объектов при наследовании
- •22. Указатели на производный и базовый классы. Формат явного преобразования указателей на базовый класс.
- •23.Виртуальный базовый класс
- •24.Консруктор во множественном наследовании
- •25.Виртуальные функции. Переопределение виртуальной функции.
- •26.Понятие абстрактного класса
- •29. Перегрузка методами класса
- •34.Итераторы
- •35.Алгоритмы
- •36. Потоковые классы.
- •37.Управление выводом. Манипуляторы и флажки.
- •38. Файловые потоки.
- •39.Шаблоны функций
- •40.Шаблоны классов.
- •46. Указатель типа «void».
- •48. Операция «typeid»
7. Динамическая память, операции работы с памятью.
В языке программирования Си имеются следующие четыре функции для динамического распределения памяти, входящие в стандартную библиотеку:
malloc (от англ. memory allocation, выделение памяти),
calloc (от англ. clear allocation, чистое выделение памяти)
realloc (от англ. reallocation, перераспределение памяти).
free. (англ. free, освободить)
Эти функции имеют следующие описания:
#include <stdlib.h>
void *malloc (size_t size);
void *calloc (size_t num, size_t size);
void *realloc(void *block, size_t size);
void *free(void *block);
В С++ имеются два оператора:
new delete.( int n=100; float *p= new float [n])
8. Ссылки в С++. Отличие ссылок от переменных-указателей.
Отличие ссылки от указателя грубо говоря такое: Ссылка это просто другое название(псевдоним) для переменной на которую она ссылается. Указатель это переменная представляющая собой адрес другой переменной.
сылка в программировании — это объект, указывающий на определенные данные, но не хранящий их. Получение объекта по ссылке называется разыменованием.
Ссылка не является указателем, а просто является другим именем для объекта.
В языках программирования ссылка может быть реализована как переменная, содержащая адрес ячейки памяти. В некоторых языках высокого уровня также имеется возможность использовать ссылки на объекты при передаче объектов в подпрограмму и из подпрограммы.
Ссылки в C++ должны быть связаны с каким-либо объектом. Таким образом, «нулевые ссылки» (не связанные с каким-либо объектом), в C++ отсутствуют. Разыменование ссылок в C++ не требует специального оператора. Таким образом, в C++ ссылки — форма передачи адреса в стек напрямую, минуя копирование и указатели.
В следующем примере параметр x передаётся по значению, а y — по ссылке. Результат работы функции помещается в y:
#include <iostream>
using namespace std; // без этой записи нам бы пришлось дописывать "std::" к cout и endl
void square(int x, int &result)
{result = x*x;}
int main()
{ int y = 0; //Инициализация
square(3, y);
cout << "y=" << y << endl; //y=9
return 0; }
9. Передача аргументов в функцию по умолчанию.
Передача параметров делится по отношению к вызывающей стороне (фактические):
По значению
По ссылке
и по отношению в вызываемой функции (формальные):
Простой
С указанием значения по умолчанию
Переменное количество аргументов
При передаче аргумента по значению в вызываемую функцию передается значение указанной переменной / константа / вычисляемое выражение. Может быть только атомарным. Если передается значение переменной, а сама переменная не определена, то вознивает ошибка UNDEFINED.
При приеме формального аргумента с указанием значения по умолчанию указывается это значение через знак равенства:
При приеме формального аргумента с указанием значения по умолчанию значение может быть только константой - строка или число. При передаче фактического аргумента по ссылке из него будет взято указанное значение и на стеке все равно будет создана локальная атомарная копия. В случае если передаваемая переменная была неопределена (и передавалась по ссылке) или фактический аргумент был опущен, то вызываемая функция получит значения формальных переменных как было специфицировано.