Вопросы на собеседовании программисту С++

Посоветуйте интересные вопросы программисту С++, что бы оценить его знания?

Вот несколько вопросов, которые задаю я на интервью:

1. Виртуальные функции — что это и зачем?
2. Виртуальный деструктор — что это и зачем?
3. Что предпочтительней, наследование или инкапсуляция? в каких случаях и почему?
4. Есть такие волшебные слова: мьютекс и волотайл, о чем речь?
5. Чем отличается процесс от потока?
  • Вопрос задан
  • 22961 просмотр
Пригласить эксперта
Ответы на вопрос 11
DeNnEr
@DeNnEr
Спроси про использование const в разных частях объявления функции.
Чисто так, можешь спросить на тему того, что быстрее работает в Unix: потоки или процессы. Вопрос чуть спорный, но можешь сделать немного выводов.
Спроси как человек относится к препроцессору, дай пару опасных макросов вроде a+b (ведь верным будет именно (a+b) ), попроси найти проблему.
Да, попроси рассказать о ++, --, о результатах выполнения кода int i = 5; ++i + ++i;. Верным ответом будет: как компилятор захочет, какая будет фаза луны, 13, 14.
Помучай по темплейтам, если З/П от 60к, то он должен хорошо их знать.
Спроси про Boost, как он к нему относится, попроси не лукавить(скажет что-нибудь про 2-страничные ошибки — всё ок).
Спроси как он относится к Qt.
Вообще, на C++ столько ловушек, что ужас. У Страуструпа их не мало описано, поэтому можешь оттуда брать примеры и давать их. Даже если человек вспомнит ответы, это уже будет значить что он читал Страуструпа и понял всё что там есть, а это огромный плюс.
Ответ написан
@SkyKos
Можно добавить вопросы про стандартные контейнеры. Например: чем erase() отличается от remove()?
Ответ написан
Комментировать
@Fanruten
смотрите классику)
blog.gamedeff.com/?p=64
Ответ написан
Комментировать
uglymeta
@uglymeta
Ну я бы добавил традиционный вопрос о разнице ++i и i++, вопросом это конечно не назовёшь, но посмотреть как ответит и отреагирует испытуемый будет интересно.
Ответ написан
57DeD
@57DeD
Моно добавить пару вопросов про шаблоны. К примеру, такой.
Есть объявление
templatevoid f( T arg )
{
printf( "general call" );
...
}

template<>
void f( long arg )
{
printf( "explicit call" );
...
}

и вызов
int i = 0;
f( i );

Что будет вызвано?

Вместо int и long можно использовать указатели на класс и его предок; константный и неконстантный указатели.
Ответ написан
@MikeMirzayanov
Что предпочтительней, наследование или инкапсуляция? в каких случаях и почему?


Какой-то странный вопрос. Может имелось ввиду наследование и делегирование?
Ответ написан
silvansky
@silvansky
Я завалил несколько человек тупым вопросом — чем отличаются virtual функции от pure virtual.
Ещё про mutable можно спросить — про эту штуку мало кто знает.
Ну, ещё по stl погонять, основы знать надо! Типа, что быстрее справится с такой-то задачей: vector или map? Области применимости и т.п.

«5. Чем отличается процесс от потока?» — это скорее вопрос на общую компьютерную грамотность, типа «Чем отличается процессор от системного блока?», который нам на информатике в школе задавали.
Ответ написан
Комментировать
@Fil
Тут (http://habrahabr.ru/blogs/cpp/75948/) ссылка на 385 вопросов и обсуждение.
Ответ написан
@sphaerion
Про исключения что-нибудь. К примеру, что происходит при возникновении исключений в конструкторе или деструкторе. Утечки и тому подобное.
Ответ написан
Комментировать
javenue
@javenue
Думаю, вопросы стоит разделить на группы. Вот некоторые из них, которые мне кажутся важными:
1. Синтаксис
2. ООП в C++ (средства обеспечения ООП).
3. Указатели и управление памятью
4. Обработка исключений
5. Библиотеки (STL, boost, QT — смотря что требуется для проекта)
6. Темплейты.
Вот здесь есть некоторые вопросы с ответами — www.quizful.net/interview/cpp
Ответ написан
@kaapython
По моему мнению, наиболее интересными являются вопросы, которые как можно ближе к реальной жизни. Т.е. можно, конечно, спрашивать про поведение конструкций типа i++ + ++i, но зачем?
Теперь к самим вопросам. Вопросы, конечно, можно выдумывать самостоятельно, но надежнее всего взять книги Скотта Майерса из серии «Эффективное использование C++», коих, если мне не изменяет память, 3 штуки. Каждая глава, по сути, это вопрос с подробным разъяснением ответа.
Вопросы требуются только по С++ или по ANSI C тоже? Несмотря на то, что большинство разработчиков в резюме пишет C/C++, сам Си они ни разу не знают :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы