Короткие заметки о языке C и C++: тонкости синтаксиса, поведение компилятора, подводные камни и любопытные детали стандарта. Формат «одна заметка — один вопрос», удобно читать и находить через поиск.
Диапазон хранения значений
Для получения максимального и минимального значения мы запросим их через std::numeric_limits — которая обеспечивает стандартизированный способ запроса различных свойств арифметических типов. К таким данным можно отнести: Получаем следующий…
Шаблон класса
Шаблон класса позволяет создавать параметризированный класс. Параметром может быть любой тип или значение одного из допустимого типа. Шаблон класса сам по себе не является ни типом не объектом.…
Препроцессорные директивы
Данные директивы выполняются до компиляции и управляют работой предпроцессора. Данные команды начинаются со знака # и должны быть в начале строки. Рассмотрим их подробней: #define Данная директива заменяет…
Виртуальный деструктор
Данный метод использует удаление класса потомка имея указатель на базовый класс. Рассмотрим следующий фрагмент кода: Порядок вызова будет следующий: Сначала создается базовый класс A, затем производная B. При…
Шаблоны в C++: основы и примеры
Что такое шаблон Шаблон (template) — это механизм языка C++, позволяющий писать обобщённый код, который работает с разными типами данных без дублирования. Компилятор сам подставляет нужный тип в момент вызова,…
Преобразование типов
Операторы позволяют преобразовывать типы данных от одних к другим. Есть пять типов операторов casts: c-style cast static_cast const_cast dynamic_cast reinterpret_cast Рассмотрим каждый из преобразований типов поподробней. Начнем с…
Удаление нескольких элементов из QList при помощи QMutableListIterator
Назначение В QList есть и итераторы в стиле Java, и итераторы в стиле STL: Характеристика Java-стиль STL-стиль Уровень Высокоуровневые Низкоуровневые Простота Проще в использовании Требуют больше внимания Эффективность Немного менее эффективны Более…