Здравствуйте, Аноним, Вы писали:
А>Завтра впервые в жизни буду проводить интвервью кандидатов на позицию С++ девелоперов. Понятния не имею, что спрашивать..
А>Подскажите пожалуйста пять, шесть вопросов, которые бы дали понять, что человек понимает в С++. Не хочу задавать какие то каверзные вопросы из области фантастики (я честно говоря и сам не отвечу на такие). Просто хочу знать и видеть как человек видит вопрос и может найти решение.
1)Порядок вызова конструкторов и деструкторов?
class A {};
class B {};
class D {
A a;
B b;
};
class F : public A, B {
};
class A {
public:
virtual void f() {}
void g() { f(); }
};
class B : public A {
public:
void f() {}
};
2)Зачем может понадобиться виртуальный деструктор в данном случае?
3)Как сделать чтобы A::f был виден только ему и наследникам?
3)Есть одно-свзанный список,
class List {
struct Node {
int data;
Node *next;
};
insert();
remove();
..
};
Обобщить на случай произвольного типа вместо "int" с помощью шаблонов.
4)
class B;
class A {
public:
void SomethingHappen() { b_.DoSomething(); }
private:
B &b_;
};
class B {
public:
void DoSomething();
};
Как избавиться от "циркулярной зависимости А и B?
5)Вычислить факториал на этапе компиляции, на выходе константа 'n', на выходе факториал
6)Реализовать сингелтон.