C++(3 семестр) — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «{{в разработке}}»)
 
Строка 1: Строка 1:
 
{{в разработке}}
 
{{в разработке}}
 +
==1 часть==
 +
===Наследование.===
 +
===Виртуальные функции, абстрактные функции.===
 +
===Таблица виртуальных функций.===
 +
===Виртуальный деструктор.===
 +
===Множественное наследование.===
 +
===Модификаторы доступа для наследования.===
 +
===Виртуальное наследование.===
 +
===Порядок инициализации при создании объекта.===
 +
===Pure virtual function call, __declspec(novtable).===
 +
===Ковариантность типа возвращаемого значения.===
 +
===Приведение типов: static_cast, dynamic_cast, const_cast, reinterpret_cast;===
 +
===RunTime Type Information.===
 +
===Templates: функции и классы.===
 +
===Полная (explicit) и частичная (partial) специализация.===
 +
===Compile-time объекты. ===
 +
===Разница между специализацией и перегрузкой функции. ===
 +
===Template arguments deduction, partial ordering для специализаций.===
 +
===Правила инстанциирования. ===
 +
===Двухфазный lookup имен: по не зависящим от параметров (independent) и зависимым (dependent) именам. ===
 +
===Ключевое слово typename при обращении к dependent именам. ===
 +
===Отложенный парсинг шаблонных функций компилятором Microsoft (Сорокин обещал давать на экзамене задание на эту тему).===
 +
===Два подхода к инстанциированию: Cfront – инстанциирование по ошибкам линковки (перелинковка, export template), Borland – инстанциирование везде, но с пометкой inline. Явное инстанциирование, подавление истанциирования. ===
 +
===SFINAE (substitution failure is not an error).===
 +
===Overload resolution, conversion sequence. ===
 +
===Tag dispatching.===
 +
===Namespace. ===
 +
===Global namespace.===
 +
===Директива using namespace.===
 +
===Порядок поиска в пространствах имен.===
 +
===Using декларация. ===
 +
===Анонимный namespace. ===
 +
===Argument-dependent lookup (Koenig lookup).===
 +
===STL. Контейнеры, итераторы, алгоритмы. ===
 +
===Контейнеры: sequence, associative. ===
 +
===Итераторы: input, output, forward, bidirectional, random access. ===
 +
===Reverse итераторы. ===
 +
===Range. ===
 +
===Концепторы, функторы.===

Версия 22:24, 8 января 2014

Эта статья находится в разработке!

Содержание

1 часть

Наследование.

Виртуальные функции, абстрактные функции.

Таблица виртуальных функций.

Виртуальный деструктор.

Множественное наследование.

Модификаторы доступа для наследования.

Виртуальное наследование.

Порядок инициализации при создании объекта.

Pure virtual function call, __declspec(novtable).

Ковариантность типа возвращаемого значения.

Приведение типов: static_cast, dynamic_cast, const_cast, reinterpret_cast;

RunTime Type Information.

Templates: функции и классы.

Полная (explicit) и частичная (partial) специализация.

Compile-time объекты.

Разница между специализацией и перегрузкой функции.

Template arguments deduction, partial ordering для специализаций.

Правила инстанциирования.

Двухфазный lookup имен: по не зависящим от параметров (independent) и зависимым (dependent) именам.

Ключевое слово typename при обращении к dependent именам.

Отложенный парсинг шаблонных функций компилятором Microsoft (Сорокин обещал давать на экзамене задание на эту тему).

Два подхода к инстанциированию: Cfront – инстанциирование по ошибкам линковки (перелинковка, export template), Borland – инстанциирование везде, но с пометкой inline. Явное инстанциирование, подавление истанциирования.

SFINAE (substitution failure is not an error).

Overload resolution, conversion sequence.

Tag dispatching.

Namespace.

Global namespace.

Директива using namespace.

Порядок поиска в пространствах имен.

Using декларация.

Анонимный namespace.

Argument-dependent lookup (Koenig lookup).

STL. Контейнеры, итераторы, алгоритмы.

Контейнеры: sequence, associative.

Итераторы: input, output, forward, bidirectional, random access.

Reverse итераторы.

Range.

Концепторы, функторы.