надо для собеседования
большинство вопросов которые обычно задают, либо очень банальны ("для чего нужны смарт-пойнтеры"),
либо из серии знаешь/не знаешь.
интересный и умный вопрос — когда к ответу приходишь логическим путем, а не просто "знаешь"
парочка вопросов которые мне понравились:
-почему в С++ нельзя реализовать полноценный сборщик мусора?
-в каких ситуациях перегрузка левого ++ лучше чем правого ++?
Здравствуйте, Awaken, Вы писали:
A>надо для собеседования A>большинство вопросов которые обычно задают, либо очень банальны ("для чего нужны смарт-пойнтеры"), A>либо из серии знаешь/не знаешь. A>интересный и умный вопрос — когда к ответу приходишь логическим путем, а не просто "знаешь" A>парочка вопросов которые мне понравились: A>-почему в С++ нельзя реализовать полноценный сборщик мусора? A>-в каких ситуациях перегрузка левого ++ лучше чем правого ++?
а сколько денег дают тому кто может за 10 секунд ответить на такой вопрос?
Здравствуйте, Sashaka, Вы писали:
A>>-почему в С++ нельзя реализовать полноценный сборщик мусора? A>>-в каких ситуациях перегрузка левого ++ лучше чем правого ++? S>а сколько денег дают тому кто может за 10 секунд ответить на такой вопрос?
А что в этих вопросах сложного?
Правда, ответ на них займет явно больше 10 секунд — говорить надо много.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Sashaka, Вы писали:
A>>>-почему в С++ нельзя реализовать полноценный сборщик мусора? A>>>-в каких ситуациях перегрузка левого ++ лучше чем правого ++? S>>а сколько денег дают тому кто может за 10 секунд ответить на такой вопрос? C>А что в этих вопросах сложного?
C>Правда, ответ на них займет явно больше 10 секунд — говорить надо много.
Да и потом добавит,
Извините что так много наговорил, было мало времени
Здравствуйте, Awaken, Вы писали:
A>надо для собеседования A>большинство вопросов которые обычно задают, либо очень банальны ("для чего нужны смарт-пойнтеры"), A>либо из серии знаешь/не знаешь. A>интересный и умный вопрос — когда к ответу приходишь логическим путем, а не просто "знаешь"
— Как реализовать Singleton?
Причем его нужно задавать в таком коротком виде. И смотреть, что человек знает про Singleton. Так как вопрос открытый, то к решению можно прийти постепенно. Сначала он реализует Meyers Singleton, потом можно попросить сделать его thread-safe. Посмотреть на детали реализации, например: сделан ли конструктор класса закрытым, почему. Потом спросить, как мы будем удалять Singleton (lifetime policy). И так далее.
Здравствуйте, alexeiz, Вы писали:
A>- Как реализовать Singleton?
A>Причем его нужно задавать в таком коротком виде. И смотреть, что человек знает про Singleton. Так как вопрос открытый, то к решению можно прийти постепенно. Сначала он реализует Meyers Singleton, потом можно попросить сделать его thread-safe. Посмотреть на детали реализации, например: сделан ли конструктор класса закрытым, почему. Потом спросить, как мы будем удалять Singleton (lifetime policy). И так далее.
Ну и для начала выяснить, понимает ли человек границы уникальности объекта, созданного этим синглтоном. Т.е. в рамках чего уникален объект:
— модуль
— thread
— DLL
— процесс
— компьютер
— локальная сеть
— Вселенная
и т.п., и что он будет делать, если подразумеваются другие рамки.
Здравствуйте, alexeiz, Вы писали:
A>Здравствуйте, Awaken, Вы писали:
A>>надо для собеседования A>>большинство вопросов которые обычно задают, либо очень банальны ("для чего нужны смарт-пойнтеры"), A>>либо из серии знаешь/не знаешь. A>>интересный и умный вопрос — когда к ответу приходишь логическим путем, а не просто "знаешь"
A>- Как реализовать Singleton?
A>... Сначала он реализует Meyers Singleton, потом можно попросить сделать его thread-safe...
А потом посмотреть, придёт ли он в конце концов к мысли о том, что если чётко следовать букве стандарта C++ и не операться на особенности конкретных реализаций, то общая реализация thread-safe Singleton`а с автоматическим созданием по первому требованию не возможна впринципе .
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Здравствуйте, Awaken, Вы писали:
A>надо для собеседования A>большинство вопросов которые обычно задают, либо очень банальны ("для чего нужны смарт-пойнтеры"), A>либо из серии знаешь/не знаешь. A>интересный и умный вопрос — когда к ответу приходишь логическим путем, а не просто "знаешь" A>парочка вопросов которые мне понравились: A>-почему в С++ нельзя реализовать полноценный сборщик мусора? A>-в каких ситуациях перегрузка левого ++ лучше чем правого ++?
1.
Выбор конкретной реализации виртуальной функции зависит от реального типа одного аргумента (this), поэтому виртуальные функции называют мультиметодами одного аргумента. Есть парадигма мультиметодов с несколькими аргументами. В этой парадигме конкретная реализации мультиметода зависит от сочетания реальных типов 2-ух или нескольких аргументов. Собственно можно спросить:
почему в C++ есть мультиметоды одного аргумента в виде виртуальных функций, но нет мультиметодов нескольких аргументов.
В ответ надо ждать рассказ о том как устроена реализация виртуальных функций (описания механизма vtbl) и вывод о том, что для случая с несколькими динамическими аргументами механизм vtbl явно не подходит. И более того, вообще не существует их эффективной реализации, а поскольку язык C++ задумывался как высоко эффективный и производительный, то эта весьма удобная пардигма до сих пор не включена в стандарт.
Но я думаю — это уже бонусный вопрос повышенной сложности .
2. Сформулировать вопрос в точности вот в такой форме:
Расскажите чем отличается std::list от std::vector, например, чем std::list<bool> отличается от std::vector<bool>?
В ответ вы должны услышать восторженный возглас о том, что std::vector<bool> вообще стоит особняком среди векторов, так является особо извращённой и неудачной специализацией, использовать его вообще не рекомендуется, и поэтому производить сравнительный анализа списков и векторов на примере std::list<bool> и std::vector<bool> вообще не совсем корректно.
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
И где тут "...к ответу приходишь логическим путем..." все выше приведенные вопросы, как раз из области — знаешь не знаешь.
Вот мне однажды задали вопрос — что бы вы изменили в языке С++ если бы он только разрабатывался — вот тут можно долго пообсуждать и проверить логику — хотя тоже в основном на знаешь-незнаешь.
А для логики остаются только всякие головоломки и функции типа преобразовать строку в число, перевернуть строку.
Здравствуйте, Awaken, Вы писали:
A>надо для собеседования
Ну и спрашивай тогда у претендентов: Какой умный вопрос по с++ Вы знаете?
Первые десять отвечают на этот. Остальные десять уже на производные.
Все будут заняты делом и тебе не надо морочить будет голову почтенному собранию.
Здравствуйте, Awaken, Вы писали:
A>надо для собеседования A>большинство вопросов которые обычно задают, либо очень банальны ("для чего нужны смарт-пойнтеры"), A>либо из серии знаешь/не знаешь. A>интересный и умный вопрос — когда к ответу приходишь логическим путем, а не просто "знаешь" A>парочка вопросов которые мне понравились: A>-почему в С++ нельзя реализовать полноценный сборщик мусора? A>-в каких ситуациях перегрузка левого ++ лучше чем правого ++?
Почему-то сразу вспомнился Джоэль Спольски
В действительности все выглядит иначе, чем на самом деле (Станислав Ежи Лец)
Тот же std::vector<bool> стоит особняком по совершенно глупым причинам,
которые нет смысла обсуждать на интервью
Сам по себе std::vector<bool> совершенно не интересен.
Здравствуйте, Awaken, Вы писали:
A>надо для собеседования A>большинство вопросов которые обычно задают, либо очень банальны ("для чего нужны смарт-пойнтеры"), A>либо из серии знаешь/не знаешь.
Спрашивай лучше банальщину.
Так распознаешь врунов и новичков.
У тех, у кого реальный опыт, лучше поспрашивать именно про опыт.
Гораздо интереснее и полезнее узнать какие были проблемы и как они решались.
А>Тот же std::vector<bool> стоит особняком по совершенно глупым причинам, А>которые нет смысла обсуждать на интервью А>Сам по себе std::vector<bool> совершенно не интересен.
а мне такой вопрос задавали
но практического смысла в Vector<bool> я не вижу никакого, кроме того чтобы
задавать вопросы о нем на интервью
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Это ты про код в assert-е ?
А ну да, это тоже можно. Но я имел ввиду неинициализированные переменные. Пока не промучаешься с пятоком таких багов, не будет твердой уверенности в том, что их таки надо инициализировать
AR>Самая часто встречающийся баг, который проявляется в Release версии и не проявляется в Debug
интересно когда наоборот в дебаге падает, в релизе работает.
загадка — что это может быть?
Re[4]: придумайте умный вопрос по с++
От:
Аноним
Дата:
16.08.07 07:49
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Здравствуйте, Amon-RA, Вы писали:
AR>>Самая часто встречающийся баг, который проявляется в Release версии и не проявляется в Debug
КД>Это ты про код в assert-е ?
В дебажной версиях переменные нулем обычно инициализируются, а в релизе это не гарантированно. Я чаще всего сталкивался именно с этой проблемой.
Вообще странная ветка какая-то : люди кидают вопросы, но никто на них не отвечает...