Я несколько удивлен, почему "вы можете удалить это?" считается интересным вопросом. Любой, кто написал COM-код на C ++, знает, что самое первое, что вы узнаете в первый день базового программирования COM, - это как правильно использовать «delete this». Я полагаю, что было бы полезно определить, скажем, кто-то говорит в своем резюме о написании COM-программ, но в качестве вопроса общего знания C ++, если кто-то не может ответить на него немедленно, тогда он не подойдет для моей команды.
В любом случае, если ваша цель - придумать вопрос, который измеряет навыки C ++, то выбор одного вопроса - неправильный путь. Поверни это другой стороной. Правильный вопрос:
Насколько хорошо вы умеете программировать на C ++ в масштабе от одного до десяти?
Это не тот вопрос, который дает вам ответ, который вы хотите. Все говорят «восемь», независимо. Вопрос, который дает вам нужный ответ:
Хорошо, значит, вам восемь. Как вы думаете, с какой проблемой семерке будет трудно работать?
И бум , теперь вы их получили. Если кандидат думает, что «что-то делать с рекурсией» или «когда использовать виртуальный деструктор» - это такая вещь, с которой семеркам тяжело, то вы знаете, что они немного знают о рекурсии или деструкторах или чем-то еще и что их знания не идут намного дальше, чем это.
Это должно дать вам гораздо лучшую калибровку, чем придумать вопрос по пустякам. Если бы вы заставили меня придумать один хороший вопрос о факте о C ++, я бы, вероятно, спросил что-то вроде: «Как бы вы спроектировали семантический анализатор и генератор кода для той части компилятора C ++, которая работает с виртуальными методами? вызывается в деструкторе базового класса? Вам следует задавать вопросы, связанные с реальными вещами, над которыми вы работаете, и над которыми, вероятнее всего, будет работать кандидат. Это проблема, над которой мне пришлось поработать один раз, и я думаю, что это дало бы довольно хорошее представление о том, как человек разрабатывает семантические анализаторы и генераторы кода, а также свои знания C ++.