Человек рисует два кружочка — "это клиент, а это — сервер. Давайте реализуем их взаимодействие. Пускай клиент отправляет файл, а сервер его проверяет и возвращает результат — валидный или битый".
— окей, клиент и сервер — это разные приложения или что?
— да, разные приложения
— а взаимодействовать каким способом?
— да как хотите, хоть через файл на диске
— окей, пускай файл на диске
... обсудили протокол через временный каталог на диске ...
(удивляюсь — зачем такую простую задачу задавать?)
Открываю редактор, пишу функцию main, которая берёт имя файла в качестве аргумента, пишет его имя в текстовый файл во временном каталоге...
Интервьюер: стоп, стоп, а чего это вы сразу функцию main решили написать?
Я: так у нас примитивный алгоритм, зачем тут что-то ещё?
И: а может стоит интерфейсы определить?
Я думаю: странное извращение: плодить сущности для такого говна, ну ладно...
В общем, пришли к обсуждению классов, интерфейсов, наследования, виртуальных функций, особенностей конструкторов и т.п. На все вопросы был дан правильный ответ. От них пришёл ответ о том, что у меня мало опыта.
Где тут прокол — мне надо было сразу догадаться, что для пустяковой проблемы следует нагородить умных универсальных интерфейсов с шаблонами или им следовало точнее задавать вопрос? ))