ISD. Information Systems Development
 | Eng  | Rus  | 
    Главная  |   Наши клиенты   |   Наши структурные подразделения   |   Вакансии  |   Задания  |   Тестирование  |   Вопросы  |  

Онлайн-тестирование

Вы можете проверить свои знания и вероятность успешного прохождения технического интервью по C++, выполнив следующие задания:


Задание 1.

Заполните таблицу совместимости модификаторов функций-членов классов в С++:

static protected inline template<...> explicit throw(...) =0 const  
virtual
  static
    protected
      inline
        template<...>
          explicit
            throw(...)
              =0

Отметьте клетку, если вы считаете, что соответствующая комбинация модификаторов допустима (Пересечение множеств тех методов классов, для которых допустимы данные модификаторы, непустое.); снимите отметку, если вы считаете, что соответствующая комбинация модификаторов недопустима (Пересечение множеств тех методов классов, для которых допустимы данные модификаторы, образует пустое множество.). Например, если вы считаете, что функция-метод класса не может быть одновременно виртуальной и константной, снимите отметку в правой верхней клетке.

Если один из двух модификаторов в комбинации требует обязательного выполнения некоторого условия для метода класса, к которому относится модификатор (например, обязательного присутствия некоторого третьего модификатора), то предполагается выполнение этого условия (например, наличие третьего модификатора).

Обратите внимание, что модификаторы "throw(...)", "=0" и "const" указываются в коде не непосредственно перед функцией, а после списка ее аргументов.

Серым цветом выделены комбинации, вызывающие обычно особые затруднения у испытуемых.


Задание 2.

Процесс написания программного обеспечения включает в себя реализацию модели, составленной на фазах анализа и дизайна, на конкретном языке программирования. Хотя каждый язык программирования (в т.ч. и С++) предоставляет множество способов реализовать одну и ту же модель, для ряда стандартных модельных паттернов существуют специально предназначенные и оптимально подходящие для реализации этих паттернов языковые конструкции.

Строки приведенной ниже таблицы соответствуют некоторым из возможных отношений между двумя классами А и В, а столбцы - вариантам реализации этих отношений языковыми средствами С++. В клетках таблицы поставьте или снимите отметки.

Поставьте отметку, если вы считаете, что соответствующее отношение между классами оптимально реализовать соответствующим языковым средством; снимите отметку, если вы не рекомендуете соответствующее отношение между классами реализовывать соответствующим языковым средством.

  A - public базовый класс для B A - private базовый класс для B A - public поле данных B A - private поле данных B
A является B (A is B)
B является A (B is A)
A является вспомогательным средством реализации B (B uses A)
B является вспомогательным средством реализации A (A uses B)
A содержит в себе B (A has B)
B содержит в себе A (B has A)

Серым цветом выделена комбинация, вызывающая обычно особые затруднения у испытуемых.




  |  Up Наверх