ar
Feedback
Библиотека собеса по C++ | вопросы с собеседований

Библиотека собеса по C++ | вопросы с собеседований

الذهاب إلى القناة على Telegram

Вопросы с собеседований по C++ и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/9ccf302b Для обратной связи: @proglibrary_feeedback_bot

إظهار المزيد
4 944
المشتركون
-4024 ساعات
-13 9947 أيام
-14 00630 أيام
أرشيف المشاركات
Могут ли ссылки отсылать к недопустимому местоположению в памяти в C++? В C++ ссылки более безопасны, чем указатели, потому ч
Могут ли ссылки отсылать к недопустимому местоположению в памяти в C++? В C++ ссылки более безопасны, чем указатели, потому что ссылки должны быть инициализированы, и их нельзя изменить, чтобы ссылаться на что-то другое после инициализации. Но есть исключения, когда у нас могут быть недействительные ссылки. Но есть пара исключений, когда у нас могут быть недействительные ссылки. Они приведены на картинке.

В чем отличие overload и overried? Ответ: overload — это перегрузка, два одинаковых имени функций с разными принимаемыми аргументами, override — это переопределение (с помощью таблицы виртуальных функций), изменение поведения функции в выведенном классе (с помощью механизма виртуальных функций).

Отличия между указателем и массивом? Массивы создаются в статической памяти или в стеке. Указатели могут указывать на любой т
Отличия между указателем и массивом? Массивы создаются в статической памяти или в стеке. Указатели могут указывать на любой тип в памяти. В массивах можно изменять содержимое, а по указателю не всегда.

Для чего нужен std::string::at? std::string::at можно использовать для извлечения символов по символам из заданной строки. По
Для чего нужен std::string::at? std::string::at можно использовать для извлечения символов по символам из заданной строки. Подробнее ознакомиться можно здесь.

Что такое чисто виртуальный метод и абстрактный класс? Чисто виртуальный метод — это метод, у которого отсутствует реализация
Что такое чисто виртуальный метод и абстрактный класс? Чисто виртуальный метод — это метод, у которого отсутствует реализация. Абстрактный класс — это класс имеющий хотя бы один чисто виртуальный метод. Как следствие, экземпляр подобного класса не может быть создан т.к. отсутствует реализация виртуального метода. #код

Что такое сложность алгоритма и от чего она зависит? Сложность алгоритма — это количественная характеристика его эффективности, которая показывает, как зависят затраты ресурсов (времени, памяти) от размера входных данных. Сложность зависит от: — Объема операций, которые алгоритм выполняет при обработке данных. — Количества итераций циклов, рекурсивных вызовов. — Зависимости числа операций от размера входных данных. — Операций внутри вложенных циклов и структур. Чем быстрее растёт сложность функции с ростом входных данных, тем менее эффективен алгоритм.

Что выведет программа?
Anonymous voting

Зачем нужен count_if? Алгоритм count_if выполняет подсчет количества выполнений условия в последовательности.
Зачем нужен count_if? Алгоритм count_if выполняет подсчет количества выполнений условия в последовательности.

Бывает такое, что оператор new не выделяет память? Да, бывает, когда new передаётся указатель на уже выделенную память (например, с помощью malloc). Это называется placement new. И оператор new без изменения возвращает второй параметр — указатель (void* operator new(std::size_t, void*)). Это используется для создания объектов в выделенном "хранилище" или после malloc. Важно! В этом случае деструктор нужно вызывать самостоятельно!

Как проверить, содержит ли строка только буквы в C++? Мы можем использовать регулярное выражение, чтобы проверить, содержит л
Как проверить, содержит ли строка только буквы в C++? Мы можем использовать регулярное выражение, чтобы проверить, содержит ли строка только буквы. Начиная с C++11, мы можем использовать std::regex_match для сопоставления последовательности с регулярным выражением.

Какую проблему решает пространство имён? Пространство имен — это идентификатор, предоставляющий несколько библиотек. Используется для устранения конфликтов имен, когда имя связано с двумя или более библиотеками. Включает внешние объявления библиотеки с уникальными пространствами имен, что исключает возможность конфликта.

Что за ошибка в приведенном ниже коде и как ее исправить? Последним аргументом memset должен быть sizeof(*bar), а не sizeof(b
Что за ошибка в приведенном ниже коде и как ее исправить? Последним аргументом memset должен быть sizeof(*bar), а не sizeof(bar). sizeof(bar) вычисляет размер bar (то есть самого указателя), а не размер структуры, на которую указывает bar. Поэтому код можно исправить, используя sizeof(*bar) в качестве последнего аргумента вызова memset.

Какие специальные функции-члены может генерировать сам компилятор? Напишите их сигнатуру? Ответ: Компилятор может сам генерировать шесть функций. • Конструктор по умолчанию; Object(); • деструктор; ~Object(); • копирующий конструктор; Object(const Object& oth); • оператор копирующего присваивания; Object& operator=(const Object& oth); • перемещающий конструктор; Object(Object&& oth); • оператор перемещающего присваивания; Object& operator=(Object&& oth);

Сколько раз будет выполняться этот цикл? Поясните свой ответ. Если бы вы сказали 300, вы были бы правы, если бы i было объявл
Сколько раз будет выполняться этот цикл? Поясните свой ответ. Если бы вы сказали 300, вы были бы правы, если бы i было объявлено как int. Однако поскольку i было объявлено как unsigned char, правильным ответом будет то, что этот код приведет к бесконечному циклу. Вот почему: Выражение 2 * half_limit будет преобразовано в int (по правилам преобразования C++) и будет иметь значение 300. Однако, поскольку i — это беззнаковый символ, он будет пересчитан в 8-битное значение, которое, достигнув 255, переполнится (то есть вернется к 0), и цикл, таким образом, будет продолжаться вечно.

Напишите базовую реализацию std::shared_ptr. std::shared_ptr — умный указатель, который позволяет разделять владение объектом
Напишите базовую реализацию std::shared_ptr. std::shared_ptr — умный указатель, который позволяет разделять владение объектом между несколькими shared_ptr. Когда последний shared_ptr уничтожается, он автоматически удаляет объект.

Сколько раз будут выполняться циклы внутри программы? Ответ: в первом случае цикл не выполнится никогда, а во втором случае б
Сколько раз будут выполняться циклы внутри программы? Ответ: в первом случае цикл не выполнится никогда, а во втором случае будет выполняться бесконечно. #вопросы_с_собеседований

Как определить, что в программе есть memory leak? В программе на C++ можно определить наличие memory leak с помощью использования инструментов для анализа памяти, таких как Valgrind или AddressSanitizer. Другим возможным способом является использование кода, который автоматически отслеживает выделение и освобождение памяти. Можно также использовать дебаггер или профилирование, чтобы выявить проблемы с памятью. Важно понимать, что memory leak может привести к утечке ресурсов и ухудшению производительности приложения, поэтому необходимо тщательно мониторить использование памяти и обнаруживать любые проблемы сразу.

Как проверить, найден ли элемент в массиве С++? В С++ вы должны использовать std::find и проверить, указывает ли результирующ
Как проверить, найден ли элемент в массиве С++? В С++ вы должны использовать std::find и проверить, указывает ли результирующий указатель на конец диапазона.