С++ задачи и вопросы
567 subscribers
531 photos
4 files
200 links
Задачи, тесты и теоретические вопросы по С++

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Какой символ разрешен в имени идентификатора переменной?
Anonymous Quiz
19%
$
3%
@
76%
_
2%
.
Куда указывает итератор ptr после выполнения следующих двух строк кода?
?


Тест: https://proghub.ru/t/cpp-stl

Добавить свой вопрос
☝️Объяснение:

Ошибка компиляции, так как при декларации `A::createB()` , `friend` класса `B`, компилятор должен знать, что `createB` существует. Так как функция видна только в её определении после определения класса `B`, то компилятор выдаст ошибку.
Ребята, всем привет. Начинаем возобновлять постинг на каналах😘
Что будет выведено на экран?

Вопрос: https://proghub.dev/q/cc2b82

Добавить свой вопрос
Что будет выведено на экран?
Anonymous Quiz
55%
Base
45%
Derived
☝️Объяснение:

При создании объекта класса-наследника в первую очередь последовательно вызываются конструкторы всех его базовых классов. Когда происходит вызов конструктора класса Base, указатель на таблицу виртуальных функций указывает на таблицу класса Base, а уже при вызове конструктора класса Derived - на класс Derived. Поэтому не рекомендуется вызывать виртуальные функции из конструктора.
👍3
☝️Объяснение:

Виртуальные функции берут стандартный аргумент из самого Base класса. Поэтому ответ будет B1.

Многие стайлгайды запрещают это, потому что ведёт к таким странным ошибкам. Почему так сделано -- понятно, если у вас есть динамический тип, то мы должны где-то ещё хранить информацию о дефолтных аргументах, так как они обязаны вычисляться до вызова функции. Так как виртуализация в C++ сделана через разыменовывание vptr, где грубо говоря будут храниться указатели на функции, то единственный вариант дефолтного аргумента -- в самом интерфейсе.
🔥2👍1
Что произойдет в результате компиляции данного кода? (С++11)
?


Вопрос: https://proghub.dev/q/6f0fd8

Добавить свой вопрос
Что произойдет в результате компиляции данного кода? (С++11)
Anonymous Quiz
12%
12345
6%
1
69%
23456
14%
Ошибка компиляции
Является ли std::string контейнером STL
Anonymous Quiz
45%
Нет
55%
Да
☝️Объяснение:

Является Standart library class, но не входит STL, несмотря на то, что поддерживает множество функций для работы алгоритмов, а также схожие методы. Да и вообще, это всего лишь typedef на специализацию шаблона.

Вопрос: https://proghub.dev/q/e6b1cc

🔥Добавить свой вопрос