Senior C++ Developer – Telegram
Senior C++ Developer
12.3K subscribers
1.36K photos
3 videos
610 links
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr

РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba
Download Telegram
#вопросы_с_собеседований
Что дают разные модификаторы при наследовании?

Ответ:
Изменяют зону видимости членов базового класса.
При private наследовании protected и public члены становятся private. При protected наследовании public становится protected. А при public ничего не изменяется.
Лямбда-выражения

В C++ 11 появилась поддержка лямбда-выражений. Они напоминают анонимные функции в JavaScript, их можно сравнить с функциональными объектами без имён. Они захватывают переменные в различных областях видимости в зависимости от их описания, для которого используются компактные синтаксические конструкции. Кроме того, их можно назначать переменным.

Лямбда-выражения — весьма полезный инструмент для тех случаев, когда в коде нужно выполнить какую-нибудь небольшую операцию, но для этого не хочется писать отдельную функцию. Ещё один распространённый пример их использования — создание функций, используемых при сравнении значений.
#вопросы_с_собеседований
Можно ли использовать ссылку при возвращении из функции? Это хорошо или плохо?

Нельзя:
• никогда нельзя возвращать ссылку на локальную переменную, созданную внутри функции, потому что она разрушится сразу после выхода из функции;
• нельзя возвращать ссылку на выделенную память, потому что её нельзя будет очистить.

Можно:
• когда возвращается константная ссылка на член класса;
• когда Вы пишете оператор <<, оператор = и оператор индексирования, они должны возвращать ссылку на объект.

Возвращать ссылку - это хорошо, потому что не вызывается лишний копирующий конструктор для возвращаемого значения, но, иногда лучше и правильнее возвращать по значению.
Алгоритм lower_bound

Возвращает итератор, указывающий на первую позицию в отсортированной последовательности, ограниченной диапазоном [first, last), в которую можно вставить значение value, не нарушая упорядоченности.
Что выведет код?
Anonymous Quiz
8%
11
6%
00
47%
22
13%
12
5%
02
23%
Другое
Компилятор C++ может динамически встраивать функции во время выполнения.

https://github.com/drti
Minetest — это воксельный игровой движок с открытым исходным кодом, который легко модифицировать и создавать игры.

https://www.libhunt.com/r/minetest
Что выведет код?
Anonymous Quiz
34%
210
2%
120
5%
021
35%
012
2%
201
22%
Другое
#вопросы_с_собеседований по Си
Что такое void указатель? Можно ли разыменовать указатель void, не зная его типа?

void указатель — это указатель, который можно использовать для указания на любые данные любого произвольного типа. Указатель void может быть разыменован только после явного приведения. Например:
int a = 5;
void *b = &a;
printf(“%d\n”, *((int*)b));
Что выведет код?
Anonymous Quiz
10%
12
64%
13
10%
31
6%
50
10%
11
Генерация исходного кода C++ (ориентация на данные финансового рынка).

https://lucisqr.substack.com/p/source-code-generation
#вопросы_с_собеседований
Есть ли разница между классом и структурой?

Единственная разница между классом и структурой — это модификаторы доступа. Члены структуры по умолчанию public; члены класса являются приватными. Рекомендуется использовать классы, когда вам нужен объект с методами, и структуры, когда у вас есть простой объект данных.