Как стать автором
Обновить

Безумные задачки

Время на прочтение1 мин
Количество просмотров2.9K
После бурной дискуссии у меня возник вопрос: а, действительно, как много людей, знающих (или считающих что они знают) C++ могут ответить на вопрос, подобный «простейшему тесту» из обсуждаемой статьи.

#include <iostream>

int test(int x) {
  static const int y = test(x + 1) * 2;
  return x + y;
}

int main() {
  std::cout << test(42) <&lt std::endl;
  std::cout << test(0) <&lt std::endl;
}

Вопросы:
1. Для какой версии GCC будет работать эта программа?
2. Что она выведет на экран?
3. Как отрефакторить функцию test() чтобы она стала совместима со стандартом (и с GCC 4.2, соответственно)?

Ну и парочка более простых примеров (примерно как задачка номер два там):
4. Как описать внутри класса функцию классу не принадлежающую (то есть не являющуюся ни статическим, ни динамическим методом класса)?
5. Зачем эта возможность нужна в C++?

Ну и напоследок вопрос: а стоит ли задавать подобные вопросы на собеседовании?

P.S. Подсказки пишите белым по белому, как обычно…
Теги:
Хабы:
+6
Комментарии61

Публикации