+ Reply to Thread
Results 1 to 9 of 9

Thread: Часто задаваемые вопросы на собеседованиях

  1. #1
    rtkm's Avatar

    Default Часто задаваемые вопросы на собеседованиях

    Вопросы по Си, безопасности и т.д.
    Буду рад услышать от тех кто проходил собеседования
    Invia virtuti nulla est via.

  2. #2
    Darwin's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    Вопрос: Сможешь реализовать поддержку классов на чистом Си? Расскажи подробно?
    Last edited by Darwin; 18-05-2014 at 13:21.

  3. #3
    rtkm's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    Вопрос: Сможешь реализовать поддержку классов на чистом Си? Расскажи подробно?
    Кому интересно нашел ответ http://habrahabr.ru/post/205570/

    Жду следующих вопросов!
    Invia virtuti nulla est via.

  4. #4
    Mosc's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    ИнфоТеКС:

    Brainbench -> Test Center -> C++ (http://www.brainbench.com/xml/bb/com....xml?testId=54)


    Лаборатория Касперского:

    Найти номер / позицию (n-го, 0 <= n <= 31) по порядку установленного в 1 бита 32-битного беззнакового числа. В 32-битном беззнаковом числе биты установлены в 1 в разных местах (остальные — в 0). Необходимо найти n-й по счету установленный в 1 бит. Пример, для 0001 1000 0000 1100 1001 1010 0111 0010 и n = 4, ответ будет — 6.


    Итеранет:

    Вопрос №1:
    В каком порядке будут вызваны конструкторы и деструкторы классов в процессе создания и разрушения объектов z и x?

    class A {};
    class B {};

    class Z {
    public:
    A a_;
    B b_;
    };

    class X : public B, public A {
    };

    int main(int, char* [])
    {
    Z z;
    X x;
    }

    A::A, a=0
    B::B, b=0
    Z::Z
    B::B, b=0
    A::A, a=0
    X::X, x=0
    X::~X
    A::~A
    B::~B
    Z::~Z
    B::~B
    A::~A

    Initialization Order of Bases and Members: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Order of Destruction: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Destructors for Nonvirtual Base Classes: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Destructors for Virtual Base Classes: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

    Вопрос №2:
    Дайте определение абстрактного класса в C++?

    Абстрактный класс — это класс с хотя бы одной чисто виртуальной функцией.

    Abstract Classes (C++): http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

    Вопрос №3:
    Можно ли инстанцировать объекты абстрактных типов?

    Нельзя создать объект абстрактного типа, однако можно использовать указатели и ссылки на объект абстрактного типа.

    Abstract Classes (C++): http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Restrictions on Using Abstract Classes: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

    Вопрос №4:
    Может ли конструктор быть виртуальным? А деструктор?

    Конструктор не может быть объявлен как виртуальный, деструктор может быть объявлен виртуальным.

    Rules for Declaring Constructors: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Declaring Destructors: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

    Вопрос №5:
    Для чего в C++ нужен виртуальный деструктор?

    Виртуальный деструктор нужен для корректной деинициализации объектов и подобъектов, например, при использовании только указателей и ссылок на базовый класс.

    Declaring Destructors: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Using Destructors: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Order of Destruction: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Destructors for Nonvirtual Base Classes: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Destructors for Virtual Base Classes: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

    Вопрос №6:
    Как называется использование объекта одного класса в качестве члена-данных другого класса?

    Составной (композитный) производный член класса (композиция может быть как агрегацией, так и включением).

    Composed Derivative Types: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

    Вопрос №7:
    Как запретить неявное преобразование типов, выполняемое конструктором класса X?

    class X {
    public:
    X(int i) : i_(i) {}
    private:
    int i_;
    };

    Перед конструктором добавить ключевое слово explicit.

    explicit (C++): http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

    Вопрос №8:
    Модифицируйте определение структуры 'node' односвязного списка для хранения объектов произвольного типа.

    struct node {
    node* next;
    int data;
    };

    Перед объявлением структуры добавить ключевое слово template с параметром для типа объектов (template<class T>). В качестве типа объекта использовать идентификатор T (T data).

    Advantages of Templates [C++]: http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Last edited by Mosc; 19-05-2014 at 15:45.

  5. 3 пользователя(ей) сказали cпасибо:
    Darwin (20-05-2014) keyst0rke (21-05-2014) ximera (20-05-2014)
  6. #5
    Dark Koder's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    про ЛК я не понял) поясните для непосвященных...
    Magicus Technicus
    Магистр Кодерус


  7. #6
    Mosc's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    Quote Originally Posted by Dark Koder View Post
    про ЛК я не понял) поясните для непосвященных...
    Млин, сам непосвященный. Предполагаю, что проверялось знание и понимание алгоритмов (ЛК все-таки, а не какая-то там "шарашкина" контора, ищут "the (very) best of the best"), например, из вот такой книги:

    Warren H.S., Jr. / Уоррен Г., мл - Hacker's Delight / Алгоритмические трюки для программистов [2004, PDF, RUS]:
    Глава 5. Подсчет битов

    http://rutracker.org/forum/viewtopic.php?t=532864

    З. Ы. Позиция "Senior C++ Developer".
    Last edited by Mosc; 19-05-2014 at 21:04.

  8. 3 пользователя(ей) сказали cпасибо:
    Dark Koder (20-05-2014) Darwin (20-05-2014) ximera (20-05-2014)
  9. #7
    Mosc's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    Вообще, на RSDN есть инфа:

    "Как самого себя проверить на знание С++": http://www.rsdn.ru/?forum/info/FAQ.cpp.questions

    А дальше — Google Search. :)

  10. 3 пользователя(ей) сказали cпасибо:
    Dark Koder (20-05-2014) Darwin (20-05-2014) ximera (20-05-2014)
  11. #8
    500mhz's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    Че там не понятного? "отсчитать" от начала 4 бита установленных в 1, и выдать его позицию в 32 битном числе. В данном примере 4 установленый в 1 бит занимаеш 6 позицию.
    Делается элементарно (2 команды на асме )))))

  12. Пользователь сказал cпасибо:
    Dark Koder (21-05-2014)
  13. #9
    Mosc's Avatar

    Default Re: Часто задаваемые вопросы на собеседованиях

    По безопасности и т. д.:

    ИнфоТеКС:

    1) Знаете ли Вы про Detours? Как Вы считаете, легальный ли это продукт? Сможете сами реализовать такой функционал?

    2) Что такое Kerberos?

  14. Пользователь сказал cпасибо:
    keyst0rke (21-05-2014)
+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:30
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org