С учетом следующих объявлени, какие варианты вызова функции можно использовать?
Вопрос: https://proghub.ru/q/20cf52
Добавить свой вопрос
Вопрос: https://proghub.ru/q/20cf52
Добавить свой вопрос
👍1
С учетом следующих объявлени, какие варианты вызова функции можно использовать?
Anonymous Quiz
22%
foo(*obj);
59%
foo(&obj);
5%
foo(~obj);
12%
foo(obj);
2%
foo(@obj);
Каков будет результат выполнения следующего кода?
?
Вопрос: https://proghub.ru/q/a35126
Добавить свой вопрос
?
Вопрос: https://proghub.ru/q/a35126
Добавить свой вопрос
🔥1
Каков будет результат выполнения следующего кода?
Anonymous Quiz
3%
81
10%
ошибка компиляции
20%
1 4 9 16 25 36 49 64 81
0%
Undefined behavior
67%
81 64 49 36 25 16 9 4 1
Какой будет выход из следующей программы?
Anonymous Quiz
48%
0
35%
1
0%
-1
17%
Недопустимое использование функции strcmp ()
Что выведет программа?
Anonymous Quiz
5%
Не скомпилируется, так как exception принимается по значению
46%
G
14%
SG
27%
S
8%
Неопределенное поведение
☝️Объяснение:
Мы кидаем `SpecialException`. Оно унаследовано от `GeneralException`, но принимается по значению, поэтому динамический тип e будет `GeneralException`, не `SpecialException`. В С++ community такой эффект называют ещё `slicing`.
Мы должны принимать `exception` по ссылке `catch (GeneralException& e)`, тогда динамический тип будет `SpecialException`, и программа выведет `S`.
Мы кидаем `SpecialException`. Оно унаследовано от `GeneralException`, но принимается по значению, поэтому динамический тип e будет `GeneralException`, не `SpecialException`. В С++ community такой эффект называют ещё `slicing`.
Мы должны принимать `exception` по ссылке `catch (GeneralException& e)`, тогда динамический тип будет `SpecialException`, и программа выведет `S`.
👍3
Куда указывает итератор ptr после выполнения следующих двух строк кода?
?
Тест: https://proghub.ru/t/cpp-stl
Добавить свой вопрос
?
Тест: https://proghub.ru/t/cpp-stl
Добавить свой вопрос
Куда указывает итератор ptr после выполнения следующих двух строк кода?
Anonymous Quiz
8%
на элемент, находящийся перед первым
60%
на элемент, находящийся за последним
28%
на последний элемент вектора
5%
на первый элемент вектора
Что выведет программа?
Anonymous Quiz
3%
A
7%
B
45%
AB
3%
BA
38%
Не скомпилируется
3%
Неопределенное поведение
☝️Объяснение:
Ошибка компиляции, так как при декларации `A::createB()` , `friend` класса `B`, компилятор должен знать, что `createB` существует. Так как функция видна только в её определении после определения класса `B`, то компилятор выдаст ошибку.
Ошибка компиляции, так как при декларации `A::createB()` , `friend` класса `B`, компилятор должен знать, что `createB` существует. Так как функция видна только в её определении после определения класса `B`, то компилятор выдаст ошибку.
Что верно о алгоритме быстрой сортировки?
Anonymous Quiz
15%
Алгоритм требует дополнительной памяти
17%
Для неотсортированного и отсортированного массива количество сравнений примерно равное
42%
Среднее количество обменов O(n*log n)
27%
Считается самым быстрым на практике алгоритмом
☝️Объяснение:
При создании объекта класса-наследника в первую очередь последовательно вызываются конструкторы всех его базовых классов. Когда происходит вызов конструктора класса Base, указатель на таблицу виртуальных функций указывает на таблицу класса Base, а уже при вызове конструктора класса Derived - на класс Derived. Поэтому не рекомендуется вызывать виртуальные функции из конструктора.
При создании объекта класса-наследника в первую очередь последовательно вызываются конструкторы всех его базовых классов. Когда происходит вызов конструктора класса Base, указатель на таблицу виртуальных функций указывает на таблицу класса Base, а уже при вызове конструктора класса Derived - на класс Derived. Поэтому не рекомендуется вызывать виртуальные функции из конструктора.
👍3