Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Что такое виртуальный базовый класс?

В чем разница между struct и class?Это не полный ответ, продолжайте.
Ответ: Практически ни в чем. В struct модификаторы доступа по умолчанию public, в class private.
Вообще, наличие двух сущностей не отличающихся практически ничем — имхо бредЭто не бред, это для совместимости с Си.
class A;
void foo(A*);
struct A
{
int i;
};
void foo(A*)
{
}Comeau, VC2010 и g++ 4.4.0 это компилируют.9. Сколько в памяти занимает произвольная структура?
Ответ: sizeof всех членов + остаток для выравнивания (по умолчанию выравнивание 4 байта) + vtable (если есть виртуальные функции)
struct Empty{};
assert(x == sizeof(Empty));class A {};
class B {};
class C: public A, B {};19. Что стоит учитывать при использовании auto_ptr?
std::auto_ptr p(new char[20]);если будет использоваться delete вместо delete[], то будет вызван деструктор первого обьекта массива, а остальных обьектов не будет вызываться
16. Что такое чисто виртуальный метод и абстрактный класс?
Ответ: Чисто виртуальный метод — это метод, у которого отсутствует реализация. Абстрактный класс — это класс имеющий хотя бы один чисто виртуальный метод. Как следствие, экземпляр подобного класса не может быть создан т.к. отсутствует реализация виртуального метода.
Если пришедший на собеседывание ... не сумел написать сортировку пузырьком — пинок под жопу и пусть катится. Не нужны такие программисты.с которым я категорически не согласен.
3. Для каких целей применяется ключевое слово const?
Ответ:
Позволяет задать константность объекта
Позволяет задать константность указателя
Позволяет указать, что данный метод не модифицирует члены класса, т.е. сохраняет состояние объекта
operator const value_type *() const;
а вместо этого есть:
<source lang="cpp">
const value_type *c_str( ) const;6. Как защитить объект от копирования?Так вы защититесь только от копирования извне, но сможете копировать в членах класса. Нужно не просто делать их приватными, но ещё и оставлять без реализации.
Ответ: Сделать private конструктор копирования и оператор =.
6. Как защитить объект от копирования?
Ответ: Сделать private конструктор копирования и оператор =.
Так вы защититесь только от копирования извне, но сможете копировать в членах класса. Нужно не просто делать их приватными, но ещё и оставлять без реализации.
// main.c
main() /* poor style C. Not C++ */
{
double sq2 = sqrt(2); /* call undeclared function */
printf("the square root of 2 is %g\n", sq2); /* call undeclared function */
}
11. В чем отличие vector от deque?
…
но зато у deque операция вставки в произвольное место быстрее (O(1) против O(n)), ввиду того, что не нужно перемещать остальные значения.
20. Для чего используется ключевое слово volatile?
Ответ: Для указания компилятору о том, что данную переменную не нужно оптимизировать.
9. Сколько в памяти занимает произвольная структура?
Ответ: sizeof всех членов +… + vtable (если есть виртуальные функции) +…
8. Каким свойством должен обладать объект, чтобы его можно было добавить в ассоциативные контейнеры в качестве ключа?
Ответ: Т.к. значения в ассоциативных контейнерах хранятся отсортированными, то объект должен реализовывать оператор сравнения <, а остальные операторы сравнения могут быть выражены через него.
int i = 5;
printf( "%d,%d", ++i, ++i );
Ответ: sizeof всех членов + остаток для выравнивания (по умолчанию выравнивание 4 байта) + vtable (если есть виртуальные функции) + указатели на классы предков, от которых было сделано виртуальное наследование (размер указателя * количество классов)
class NoCopybalevoid swap(int& x, int& y)
{
x^=y^=x^=y;
}int i = 1;
i = i++ + i + ++i;
это то, что предлагают шаблоны функций/классов (class/function templates).
In computer science, polymorphism is a programming language feature that allows values of different data types to be handled using a uniform interface.
…
- Ad-hoc polymorphism: If the function denotes different and potentially heterogeneous implementations depending on a limited range of individually specified types and its combination, it is called ad-hoc polymorphism. Ad-hoc polymorphism is supported in many languages using function and method overloading.
- Parametric polymorphism: If all code is written without mention of any specific type and thus can be used transparently with any number of new types, it is called parametric polymorphism.
…
In the object-oriented programming community, programming using parametric polymorphism is often called generic programming.
- Subtype polymorphism: In object-oriented programming, subtype polymorphism or inclusion polymorphism is a concept in type theory wherein a name may denote instances of many different classes as long as they are related by some common super class.
typename T::size_type в 4-х местах.Кто у кого содрал? :-)
https://bool.dev/blog/detail/tipichnye-voprosy-na-sobesedovanii-po-cplusplus
"Как защитить объект от копирования?"
В современных версиях языка можно использовать ключевое слово delete
MyClass (const MyClass&) = delete;
MyClass& operator= (const MyClass&) = delete;
Еще спрашивают про variadic templates
Популярные вопросы на собеседовании по C++ и ответы на них