Общие вопросы
Смешанные вопросы по C++.
Открыть разделБаза Hintsage
Язык C++ и его модель выполнения.
Темы раздела
Смешанные вопросы по C++.
Открыть разделСинтаксис, типы, функции, классы и базовая семантика C++.
Открыть разделRAII, время жизни объектов, указатели и владение ресурсами.
Открыть разделКонтейнеры, итераторы, алгоритмы и их сложность.
Открыть разделTemplates, специализация, вывод типов и метапрограммирование.
Открыть разделПотоки, синхронизация, атомики и модель памяти C++.
Открыть разделВозможности стандартов C++11 и новее и идиоматичный код.
Открыть разделПрактика
Разберите ситуацию: производный объект передают в функцию, принимающую базовый класс по значению. Что происходит с частью производного объекта?
При удалении объекта производного класса через указатель на базовый класс, какое свойство деструктора базового класса делает операцию корректной?
Зачем нужен std::move, если он сам не перемещает объект?
На какой срок продлевается время жизни временного объекта при привязке к локальной ссылке, и почему возврат этой ссылки опасен?
В чём различие между default-initialization и value-initialization объекта класса, если его поля имеют встроенные типы?
В производном классе добавили перегруженную функцию с тем же именем, что в базовом. Почему обычный вызов базовой перегрузки перестаёт находиться?
Объясните механизм: почему константную функцию-член можно вызвать для неконстантного объекта, но неконстантную функцию-член нельзя вызвать для константного?
Сравните две функции и определите их точные типы возвращаемого значения. Объясните, почему скобки меняют результат вывода через decltype(auto).
int value = 10;
decltype(auto) by_name() {
return value;
}
decltype(auto) by_expression() {
return (value);
}
При возврате объекта класса по значению из функции можно ли в современном C++ гарантировать отсутствие копирования, и от чего зависит ответ?
Как ключевое слово explicit меняет возможность неявного преобразования через конструктор?
Представьте перегруженную функцию с параметрами long и double: почему вызов с аргументом типа int может быть неоднозначным, хотя оба преобразования допустимы?
Что определяет порядок инициализации членов класса, если он отличается от порядка в списке конструктора?
Во время конструирования производного объекта базовый конструктор вызывает виртуальный метод. Какой override фактически будет выбран?
При расширении std::vector почему элементы иногда копируются вместо перемещения, даже если у типа есть перемещающий конструктор?
Для перегруженной функции с параметрами указатель и целое число почему передача nullptr и передача нулевого целочисленного литерала могут выбрать разные перегрузки?
Как копирование объекта с ссылочным членом влияет на объект, на который он ссылается?
Как пользовательский деструктор влияет на неявное перемещение объекта при присваивании ему временного значения?
В практической функции параметр объявлен как указатель, а аргументом служит встроенный массив: почему размер массива нельзя вывести из параметра?
Укажите, в каком порядке разрушаются локальные объекты при выходе из области видимости.
В многопоточном C++ несколько потоков впервые одновременно обращаются к локальной статической переменной функции. Как стандарт защищает её инициализацию?
Показано 1–20 из 300