Вопросы по Си, безопасности и т.д.
Буду рад услышать от тех кто проходил собеседования
Вопросы по Си, безопасности и т.д.
Буду рад услышать от тех кто проходил собеседования
Invia virtuti nulla est via.
Вопрос: Сможешь реализовать поддержку классов на чистом Си? Расскажи подробно?
Last edited by Darwin; 18-05-2014 at 13:21.
Кому интересно нашел ответ http://habrahabr.ru/post/205570/Вопрос: Сможешь реализовать поддержку классов на чистом Си? Расскажи подробно?
Жду следующих вопросов!
Invia virtuti nulla est via.
ИнфоТеКС:
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.
про ЛК я не понял) поясните для непосвященных...
Magicus Technicus
Магистр Кодерус
Млин, сам непосвященный. Предполагаю, что проверялось знание и понимание алгоритмов (ЛК все-таки, а не какая-то там "шарашкина" контора, ищут "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.
Dark Koder (20-05-2014) Darwin (20-05-2014) ximera (20-05-2014)
Вообще, на RSDN есть инфа:
"Как самого себя проверить на знание С++": http://www.rsdn.ru/?forum/info/FAQ.cpp.questions
А дальше — Google Search. :)
Dark Koder (20-05-2014) Darwin (20-05-2014) ximera (20-05-2014)
Че там не понятного? "отсчитать" от начала 4 бита установленных в 1, и выдать его позицию в 32 битном числе. В данном примере 4 установленый в 1 бит занимаеш 6 позицию.
Делается элементарно (2 команды на асме )))))
Dark Koder (21-05-2014)
По безопасности и т. д.:
ИнфоТеКС:
1) Знаете ли Вы про Detours? Как Вы считаете, легальный ли это продукт? Сможете сами реализовать такой функционал?
2) Что такое Kerberos?
keyst0rke (21-05-2014)