Короткие заметки о языке C и C++: тонкости синтаксиса, поведение компилятора, подводные камни и любопытные детали стандарта. Формат «одна заметка — один вопрос», удобно читать и находить через поиск.
Препроцессорные директивы
Данные директивы выполняются до компиляции и управляют работой предпроцессора. Данные команды начинаются со знака # и должны быть в начале строки. Рассмотрим их подробней: #define Данная директива заменяет…
Виртуальный деструктор
Данный метод использует удаление класса потомка имея указатель на базовый класс. Рассмотрим следующий фрагмент кода: Порядок вызова будет следующий: Сначала создается базовый класс A, затем производная B. При…
Шаблоны функций
Шаблоны начинаются с объявления ключевого слова template. После ключевого слова идут угловые скобки < >, в которых перечисляется список параметров шаблона. Например: Template < typename T> Ключевое слово…
Преобразование типов
Операторы позволяют преобразовывать типы данных от одних к другим. Есть пять типов операторов casts: c-style cast static_cast const_cast dynamic_cast reinterpret_cast Рассмотрим каждый из преобразований типов поподробней. Начнем с…
Перезагрузка функций
Под перезагрузкой понимается переопределение какой-либо функций с различным количеством параметров. Наборы параметров перезагруженной функций могут отличатся порядком следования, количеством и их типом. Рассмотрим следующий пример: Вызовем функцию test:…