Aescleal
Во-первых, лучший способ подготовиться к собеседованию-это пойти на многое. Просто посмотрите, какие вещи люди хотят, чтобы вы знали, и всегда спрашивайте их об обратной связи после этого. Большинство интервьюеров довольно откровенно говорят о том, что, по их мнению, вы сделали хорошо или нет.
Тем не менее, всякий раз, когда я беру интервью у кого-то для работы, требующей кодирования на C++, есть пара вопросов, которые я всегда задаю, когда мы переходим к технической части интервью. Они-хороший начальный барометр того, как много кто-то знает.
1. Скажите мне, как вы обычно пишете оператор безопасного присваивания исключений для класса?
2. Допустим, у вас есть текстовый файл с целыми числами. Как бы вы открыли файл, добавили по одному к каждому номеру и записали их обратно в файл?
[Продолжайте заставлять кандидата уточнять свой ответ, пока он не откроет пару файлов еще одну строку]
Первый показывает, что у них есть некоторое понимание того, как исключения взаимодействуют с остальными работами C++, и немного о RAII. Все подробности об этом можно найти в первом фрагменте "исключительного C++" Херба Саттера.
Второй показывает, использовали ли они когда-либо STL и потоки каким-либо значимым образом. Окончательное трехстрочное решение (без проверки ошибок) выглядит примерно так:
std::ifstream input( "input.txt" );
std::ofstream output( "output.txt" );
std::transform( std::istream_iterator<int>( input ),
std::istream_iterator<int>(),
std::ostream_iterator<int>( output, " " ),
std::bind2nd( std::plus<int>(), 1 ) );
В любом случае, не знаю, поможет ли это, но это всегда полезно знать!
Овации,
Пепел