Re[2]: Вопросы для интеврью
От: Vanger84  
Дата: 27.07.06 05:56
Оценка:
class A {};
class B {};
class D {
A a;
B b;
};

class F : public A, B {
};

Порядок такой
конструкторы A B D и A B F
деструкторы D B A и F B A


class A {
public:
virtual void f() {}
void g() { f(); }
};

class B : public A {
public:
void f() {}
};



2)Зачем может понадобиться виртуальный деструктор в данном случае?
Если в друг у наследника от A или от B будут переопределена функция f и в ней будет new а 0удаляться будут черз указатель на B или A то будет утечка памяти
3)Как сделать чтобы A::f был виден только ему и наследникам?
подозреваю что поместить в секцию protected

3)Есть одно-свзанный список,

class List {
struct Node {
int data;
Node *next;
};
insert();
remove();
..
};

Обобщить на случай произвольного типа вместо "int" с помощью шаблонов.

4)
template <class T>class List {
struct Node {
T data;
Node *next;
};tempalte <class T>
insert<T>(List<T> & list, T & t);
remove<T>(List<T> & list, T & t);
..
};



class B;

class A {
public:
void SomethingHappen() { b_.DoSomething(); }
private:
B &b_;
};

class B {
public:
void DoSomething();
};


Как избавиться от "циркулярной зависимости А и B? \\ чет я с утра не проснулся или где циркулярная зависимость? кстате интесрно ты на верность кода не притендуеш?

5)Вычислить факториал на этапе компиляции, на выходе константа 'n', на выходе факториал \\ ммм... затрудняюсь... но точно видал в рсдн \\ ну если че я прям сейчас сяду и буду изучать чтоб на такие вопросы отвечать легко на собеседовании

6)Реализовать сингелтон. \\ м.... его можно пол дня писать пример в книге александрески... но в краце, кстате на этот вопрос можно интересно пообщатся...

class Singleton {
Singleton(void) {};
static Singleton * instance;
// желательно еще закрыть всякие конструктора копирования и т.д.
public:
static Singleton * getInstance();
~Singleton(void) {};
};

Singleton * Singleton::instance = NULL;

Singleton * Singleton::getInstance() {
if (!instance)
instance = new Singleton;
return instance;
}

P.S.
Ну что кто возмет меня на работу? (без шуток готов рассмотреть придложения)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.