Re[13]: Как я завалил собеседование
От: LuciferMoscow Россия  
Дата: 23.01.07 21:31
Оценка: -1
Здравствуйте, i-maverick, Вы писали:

IM>3. Ф-ия main — void -> несоответствие стандарту.

А мне кажется можно
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[8]: Как я завалил собеседование
От: branco  
Дата: 23.01.07 21:33
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Здравствуйте, branco, Вы писали:


B>>В этой конторе текучка. Объявления о вакансиях висят постоянно.


IM>На Яндексе тоже постоянно висят. Это ни о чем не говорит.


B>>А как насчёт вот этого теста? Он как раз на вакансию в Яндексе.

B>>http://company.yandex.ru/inside/job/music_developer.xml

IM>Это не тест — там нет ответов. Просто список заданий.

IM>А вообще, что ты уже второй раз кидаешь ссылку и тихо улыбаешься? Инициатива наказуема: присылай свое решение.


Ну, 1-й вопрос,
На вскидку, не заглядывая в стандарт,доки и.т.д.

Было:


class Foo
{
public:
    Foo(int j) { i=new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};

class Bar: Foo
{
public:
    Bar(int j) { i=new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};

void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;
}



А можно вот так:
class Foo
{
private:

void SetState(Foo& obj)
{
  _ASSERT(obj.i != NULL);

  if(i) delete [] i;
  j = obj.j;
  i = new int[j];
  for(int k =0;k<j;k++)
            i[k] = obj.i[k];
}
public:

    Foo():j(1)
    {
        i=new int[j];
    }

    Foo(int j):j(j)
    { 
        _ASSERT(j >=0);    
        i=new int[j]; 
    }
   virtual ~Foo() { CleanUp(); }

    Foo(Foo& rhs)
    {    
        this->SetState(rhs);
    }

    Foo& operator=(Foo& rhs)
    {
        if(this != &rhs) this->SetState(rhs);
      return *this;
    }
protected:

    virtual void CleanUp()
    {
       delete [] i;
    }

private:    
    int j;
    int* i;
};

class Bar: public Foo
{
private:

void SetState(Bar& obj)
{
  _ASSERT(obj.i != NULL);
  if(i) delete [] i;

  size_t l = strlen(obj.i);
  strncpy(i,obj.i,l);  
}
public:
    Bar(int j) 
     { 
        if(j < 0)
        {
            Foo::CleanUp();
            throw("Exception");
        }
        i=new char[j]; 
     }
    ~Bar() { delete [] i; }

    Bar(Bar& rhs)
    {
        this->SetState(rhs);
    }
    Bar& operator=(Bar& rhs)
    {
        if(this != &rhs)this->SetState(rhs);
    }
private:
    char* i;
};

int main(int argc, char* argv[])
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;

    return 0;
};



Просьба ногами не пинать.
Re[14]: Как я завалил собеседование
От: i-maverick Россия  
Дата: 23.01.07 21:40
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

IM>>3. Ф-ия main — void -> несоответствие стандарту.

LM>А мне кажется можно

В VC++ можно многое, что не позволено стандартом. А в BC++ еще больше!

Вообще да, стандарт жестко не определяет возвращаемое значение (3.6.1-2), но настоятельно рекомендует int.
Re[14]: Как я завалил собеседование
От: i-maverick Россия  
Дата: 23.01.07 21:42
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

IM>>3. Ф-ия main — void -> несоответствие стандарту.

LM>А мне кажется можно

Да, забыл добавить. В задаче же не указан компилятор. Вот VC++ нормально скушает void main(), а g++ подавится.
Re[9]: Как я завалил собеседование
От: branco  
Дата: 23.01.07 21:46
Оценка:
Сорри, ошибка:
void Bar::SetState(Bar& obj)
{
  _ASSERT(obj.i != NULL);
  if(i) delete [] i;
  
  size_t l = strlen(obj.i);
  i = new char[l+1];
  strncpy(i,obj.i,l);  
}
Re[2]: Как я выгнал человека с собеседования
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 23.01.07 22:04
Оценка: 28 (9) +9
Здравствуйте, AndrewJD, Вы писали:

H>>Конечно же, виноват и все такое. Но разве так уж важно, что я не могу с ходу написать конструктор копирования?

AJD>Может солидной фирме нужен был специалист по с++ и у нех небыло свободной джунировской позиции.

Значит судя по timeframe этого сообщения, тем кто выгнал человека с собеседования был я.
Могу рассказать как все это выглядело с моей стороны. Возможно забыл детали — можешь поправить.

Человек пишет:
A::A(A a)
{
...
}


Я говорю это не работает — приводит к бесконечной рекурсии. В ответ непонимание.

Спрашиваю наводящий вопрос: если мы передаем класс в функцию по значению, как он туда копируется?
Ответ: конструктором копирования.
Вопрос: а здесь каким конструктором копирования?
В ответ понимающий взгляд, и ответ "ну конечно должно быть так".

A::A(A* a)
{
...
}

Я по-моему задал какой-то еще наводящий вопрос. Какой не помню — помоему спросил почему std::string копируется в синтаксисе
string s(other_string);
Получил опять понимающий взгляд: "ну конечно же!"

A::A(A& a)
{
...
}


Здесь я сказал уже лучше, но все равно чего-то не хватает. И в качестве примера попытался привести следующий код, который не сработает.

const A a;
A a1(a);

Будет ошибка компиляции.

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



В ответ полное непонимание. Примерно 2-3 минуты я пытался придумать наводящий вопрос, все мои попытки не увенчались успехов. В результате я пришел к выводу что концепция константных объектов человеку полностью чужда. В этом момент я окончательно принял решение, что я не хочу с этим человеком работать в команде. В тот момент когда я это понимаю я об этом говорю сразу — отказывать людям в глаза меня не напрягает, и лишнего времени на то, чтобы задать человеку еще несколько на порядок более сложных вопросов и убедиться, что он на них тоже не ответит у меня нет.
Плюс я считаю этот метод более честным, чем для вида еще 2 часа мучать человека, чтобы потом ему сказать "ну ок — мы подумаем и напишем наше решение".


Тем не менее из всей этой ситуации сделаны очень неправильные выводы.
Разъясню свою точку зрения популярно:
Человек был выгнан не за незнание синтаксиса. Мне вообще глубоко наплевать на знание синтаксиса. Вообще говоря у нас в Яндексе принято, что во время прохождения собеседования можно пользоваться Яндексом и Гуглем(забыл что-то, спроси у человека который тебя собеседует — он ответит). Просто об этом говорят в момент когда переходят от совсем базовых задач к сложным, где хотя бы упоминаются функции у которых имеет смысл узнавать параметры.

Я увидел, что человек ни разу в жизни не написал класс который можно корректно положить в STL-евский контейнер(попытка написать A*) и не понимает, что такое константность объектов(A&). Плюс с очевидных подсказок не может придумать это прямо во время собеседования(я взял на работу пару студентов, которые не знали, но делали несколько логичных предположений на собеседовании и в результате решали задачу — здесь этого не произошло).

Работать с таким человеком я не захотел. Может быть я злой и циничный человек.

P.S. Для информации — задача здесь была вообще не на конструктор копирования — просто я не успел ее задать.

P.P.S. В процессе я по-моему поправил несколько мелких ошибок синтаксиса типа нерасставленных * в теле конструктора, про них не упоминаю т.к. действительно не важно.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[2]: Как я завалил собеседование
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 23.01.07 22:22
Оценка:
Здравствуйте, Hottabych1, Вы писали:

H>Господа из Яндекса!

H>Если вы это читаете, то дайте мне еще один шанс. Обещаю, возьмете к себе — не пожалеете!

Я же тебе сказал — приходи через пол года если почувствуешь, что стал круче.

P.S. На 21 минуте точно бы засыпался как говорят. Тебя про map не только бы спросили сортированный он или нет, но и почему он сортированный. И как внутри устроен.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[3]: Как я выгнал человека с собеседования
От: Flay  
Дата: 23.01.07 22:23
Оценка: +1
A>Может быть я злой и циничный человек.

Вы добрый и пушистый. Просто работа такая.
Re[7]: Как я завалил собеседование
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 23.01.07 22:25
Оценка:
Здравствуйте, branco, Вы писали:

B>В этой конторе текучка. Объявления о вакансиях висят постоянно.


У нас не текучка, а двухкратный рост за год.

B>А как насчёт вот этого теста? Он как раз на вакансию в Яндексе.

B>http://company.yandex.ru/inside/job/music_developer.xml

Он кстати очень простой. Такой pre-screening ватоматический. Автор топика его прошел.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[9]: Как я завалил собеседование
От: i-maverick Россия  
Дата: 23.01.07 22:25
Оценка:
Здравствуйте, branco, Вы писали:

B>Ну, 1-й вопрос,

B>На вскидку, не заглядывая в стандарт,доки и.т.д.
B>...
B>А можно вот так:

Ну раз уж мы отошли от исходной задачи "найти все ошибки" и перешли к задаче "переписать правильно", то вот мой вариант:

#include <vector>
#include <string>

class Foo
{
public:
    Foo(int j) { i.resize(j); }
    virtual ~Foo() {}
private:
    std::vector<int> i;
};

class Bar : public Foo
{
public:
    Bar(int j) : Foo(j) { i.resize(j); }
private:
    std::string i;
};


void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f = *b;
    delete f;
    delete b;
}
Re[8]: Как я завалил собеседование
От: i-maverick Россия  
Дата: 23.01.07 22:29
Оценка:
Здравствуйте, Anatolix, Вы писали:

B>>А как насчёт вот этого теста? Он как раз на вакансию в Яндексе.

B>>http://company.yandex.ru/inside/job/music_developer.xml
A>Он кстати очень простой. Такой pre-screening ватоматический. Автор топика его прошел.

Ну судя по его ответам в этой ветке, не решил даже первую задачу.
Re[9]: Как я завалил собеседование
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 23.01.07 22:48
Оценка:
Здравствуйте, i-maverick, Вы писали:

B>>>А как насчёт вот этого теста? Он как раз на вакансию в Яндексе.

B>>>http://company.yandex.ru/inside/job/music_developer.xml
A>>Он кстати очень простой. Такой pre-screening ватоматический. Автор топика его прошел.

IM>Ну судя по его ответам в этой ветке, не решил даже первую задачу.


Да брось ты. Этот тест писал я вместе с еще одним хорошим программистом.
В первом вопросы была цель сделать наибольшее количество ошибок в наименьшем куске кода.
Максимум помоему находили 13, совершенно не обязательно найти все для того, чтобы прийти
на собеседование. Вообще по-моему любого нормального человека заломает полчаса сидеть над
куском кода в 15 строчек. Если мы видим что человек понимает, про что это пусть приходит.
Это не тест на то брать/не брать, а на то звать/не звать. Иногда мы приглашаем человека
с явными ошибками, просто потому что в чем то нам его ответ понравился.

А вообще основную мысль которую хотелось донести тестом: вопросы простые, на собеседовании
будут сильно сложнее. Донести удалось не до всех. С другой стороны ничего страшного.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[3]: Как я выгнал человека с собеседования
От: Hottabych1  
Дата: 23.01.07 23:03
Оценка: -2
Здравствуйте, Anatolix, Вы писали:

A>Здравствуйте, AndrewJD, Вы писали:


H>>>Конечно же, виноват и все такое. Но разве так уж важно, что я не могу с ходу написать конструктор копирования?

AJD>>Может солидной фирме нужен был специалист по с++ и у нех небыло свободной джунировской позиции.

A>Значит судя по timeframe этого сообщения, тем кто выгнал человека с собеседования был я.

A>Могу рассказать как все это выглядело с моей стороны. Возможно забыл детали — можешь поправить.

A>Человек пишет:

A>
A>A::A(A a)
A>{
A>...
A>}
A>


A>Я говорю это не работает — приводит к бесконечной рекурсии. В ответ непонимание.


A>Спрашиваю наводящий вопрос: если мы передаем класс в функцию по значению, как он туда копируется?

A>Ответ: конструктором копирования.
A>Вопрос: а здесь каким конструктором копирования?
A>В ответ понимающий взгляд, и ответ "ну конечно должно быть так".

A>
A>A::A(A* a)
A>{
A>...
A>}
A>

A>Я по-моему задал какой-то еще наводящий вопрос. Какой не помню — помоему спросил почему std::string копируется в синтаксисе
A>string s(other_string);
A>Получил опять понимающий взгляд: "ну конечно же!"

A>
A>A::A(A& a)
A>{
A>...
A>}
A>


A>Здесь я сказал уже лучше, но все равно чего-то не хватает. И в качестве примера попытался привести следующий код, который не сработает.


A>
A>const A a;
A>A a1(a);
A>

A>Будет ошибка компиляции.
A>

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



A>В ответ полное непонимание. Примерно 2-3 минуты я пытался придумать наводящий вопрос, все мои попытки не увенчались успехов. В результате я пришел к выводу что концепция константных объектов человеку полностью чужда. В этом момент я окончательно принял решение, что я не хочу с этим человеком работать в команде. В тот момент когда я это понимаю я об этом говорю сразу — отказывать людям в глаза меня не напрягает, и лишнего времени на то, чтобы задать человеку еще несколько на порядок более сложных вопросов и убедиться, что он на них тоже не ответит у меня нет.

A>Плюс я считаю этот метод более честным, чем для вида еще 2 часа мучать человека, чтобы потом ему сказать "ну ок — мы подумаем и напишем наше решение".


A>Тем не менее из всей этой ситуации сделаны очень неправильные выводы.

A>Разъясню свою точку зрения популярно:
A>Человек был выгнан не за незнание синтаксиса. Мне вообще глубоко наплевать на знание синтаксиса. Вообще говоря у нас в Яндексе принято, что во время прохождения собеседования можно пользоваться Яндексом и Гуглем(забыл что-то, спроси у человека который тебя собеседует — он ответит). Просто об этом говорят в момент когда переходят от совсем базовых задач к сложным, где хотя бы упоминаются функции у которых имеет смысл узнавать параметры.

A>Я увидел, что человек ни разу в жизни не написал класс который можно корректно положить в STL-евский контейнер(попытка написать A*) и не понимает, что такое константность объектов(A&). Плюс с очевидных подсказок не может придумать это прямо во время собеседования(я взял на работу пару студентов, которые не знали, но делали несколько логичных предположений на собеседовании и в результате решали задачу — здесь этого не произошло).


A>Работать с таким человеком я не захотел. Может быть я злой и циничный человек.


A>P.S. Для информации — задача здесь была вообще не на конструктор копирования — просто я не успел ее задать.


A>P.P.S. В процессе я по-моему поправил несколько мелких ошибок синтаксиса типа нерасставленных * в теле конструктора, про них не упоминаю т.к. действительно не важно.


Да, всё так и было... не знаю, почему так получилось. Я правда очень волновался...
Re[3]: Как я выгнал человека с собеседования
От: Hottabych1  
Дата: 23.01.07 23:11
Оценка: -1
Здравствуйте, Anatolix, Вы писали:

A>Здравствуйте, AndrewJD, Вы писали:


H>>>Конечно же, виноват и все такое. Но разве так уж важно, что я не могу с ходу написать конструктор копирования?

AJD>>Может солидной фирме нужен был специалист по с++ и у нех небыло свободной джунировской позиции.

A>Значит судя по timeframe этого сообщения, тем кто выгнал человека с собеседования был я.

A>Могу рассказать как все это выглядело с моей стороны. Возможно забыл детали — можешь поправить.

A>Человек пишет:

A>
A>A::A(A a)
A>{
A>...
A>}
A>


A>Я говорю это не работает — приводит к бесконечной рекурсии. В ответ непонимание.


A>Спрашиваю наводящий вопрос: если мы передаем класс в функцию по значению, как он туда копируется?

A>Ответ: конструктором копирования.
A>Вопрос: а здесь каким конструктором копирования?
A>В ответ понимающий взгляд, и ответ "ну конечно должно быть так".

A>
A>A::A(A* a)
A>{
A>...
A>}
A>

A>Я по-моему задал какой-то еще наводящий вопрос. Какой не помню — помоему спросил почему std::string копируется в синтаксисе
A>string s(other_string);
A>Получил опять понимающий взгляд: "ну конечно же!"

A>
A>A::A(A& a)
A>{
A>...
A>}
A>


A>Здесь я сказал уже лучше, но все равно чего-то не хватает. И в качестве примера попытался привести следующий код, который не сработает.


A>
A>const A a;
A>A a1(a);
A>

A>Будет ошибка компиляции.
A>

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



A>В ответ полное непонимание. Примерно 2-3 минуты я пытался придумать наводящий вопрос, все мои попытки не увенчались успехов. В результате я пришел к выводу что концепция константных объектов человеку полностью чужда. В этом момент я окончательно принял решение, что я не хочу с этим человеком работать в команде. В тот момент когда я это понимаю я об этом говорю сразу — отказывать людям в глаза меня не напрягает, и лишнего времени на то, чтобы задать человеку еще несколько на порядок более сложных вопросов и убедиться, что он на них тоже не ответит у меня нет.

A>Плюс я считаю этот метод более честным, чем для вида еще 2 часа мучать человека, чтобы потом ему сказать "ну ок — мы подумаем и напишем наше решение".


A>Тем не менее из всей этой ситуации сделаны очень неправильные выводы.

A>Разъясню свою точку зрения популярно:
A>Человек был выгнан не за незнание синтаксиса. Мне вообще глубоко наплевать на знание синтаксиса. Вообще говоря у нас в Яндексе принято, что во время прохождения собеседования можно пользоваться Яндексом и Гуглем(забыл что-то, спроси у человека который тебя собеседует — он ответит). Просто об этом говорят в момент когда переходят от совсем базовых задач к сложным, где хотя бы упоминаются функции у которых имеет смысл узнавать параметры.

A>Я увидел, что человек ни разу в жизни не написал класс который можно корректно положить в STL-евский контейнер(попытка написать A*) и не понимает, что такое константность объектов(A&). Плюс с очевидных подсказок не может придумать это прямо во время собеседования(я взял на работу пару студентов, которые не знали, но делали несколько логичных предположений на собеседовании и в результате решали задачу — здесь этого не произошло).


A>Работать с таким человеком я не захотел. Может быть я злой и циничный человек.


A>P.S. Для информации — задача здесь была вообще не на конструктор копирования — просто я не успел ее задать.


A>P.P.S. В процессе я по-моему поправил несколько мелких ошибок синтаксиса типа нерасставленных * в теле конструктора, про них не упоминаю т.к. действительно не важно.


И еще хочу искренне поблагодарить за честность. Потому что я тоже предпочитаю, чтобы мне прямо сказали — "ты нам не подходишь".
На самом деле, поверьте, во время собеседования я начал сомневаться буквально во всем,правда очень сильно переволновался. Потому что много думал об этом собеседовании и о его важности накануне. Вероятно, это тоже сыграло свою роль. Ладно, прошлого уже не вернуть... буду штудировать Си++ и надеяться снова попасть в Яндекс через полгода. Это та контора, где мне действительно хочется работать.
Re[13]: Как я завалил собеседование
От: skeptik_  
Дата: 24.01.07 02:19
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Здравствуйте, Hottabych1, Вы писали:


H>>На первый (про класс Foo):


IM>Эх... Еще бы ты мог объяснить то, что процитировал.


IM>И ты не увидел самых простых и очевидных ошибок:

IM>1. Деструктор невиртуальный -> утечка;
IM>2. Некорректное удаление массивов -> неопределенное поведение;
IM>3. Ф-ия main — void -> несоответствие стандарту.
+ Отсутствие copy-ctor'а в классе с полем-указателем.
Re[10]: Как я завалил собеседование
От: skeptik_  
Дата: 24.01.07 02:27
Оценка: +3
Здравствуйте, Hottabych1, Вы писали:

H>Но я над ними долго и внимательно корпел, с компилятором и документацией, а также книжкой Кернигана.

H>Вот, к примеру, мой ответ на второй вопрос (там, где галочки проставлять):

H>2) Сортированный vector позволяет, при использовании бинарного поиска, на каждом шаге отсеивать половину элементов, т.е. его сложность будет O(log2(n)) -- логарифм по снованию 2 от n (а не O(ln(n))).


Что такое временная сложность ты очевидно тоже плохо понимаешь. Константным множителям там делать нечего, а основание логарифма это ничто иное как константный множитель.
Re[14]: Как я завалил собеседование
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 24.01.07 06:53
Оценка: :)
Здравствуйте, Hottabych1, Вы писали:

LM>>>>И чего Вы хотели? Вы обманули Яндекс на первом этапе. На втором Вас порезали

H>>>Какая разница, как я получил верный результат? Почему бы на собеседовании не давать воспользоваться интернетом и компилятором?
LM>>Потому, что некоторые вещи нужно помнить. Если ты этого не помнишь, то ты нам не нужен
H>Хорошо, теперь я это помню. Возьмете?

"Ну спросите меня еще раз! Я же учил. А-а-а-а!" (с) Студент.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[10]: Как я завалил собеседование
От: branco  
Дата: 24.01.07 07:22
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Здравствуйте, branco, Вы писали:


B>>Ну, 1-й вопрос,

B>>На вскидку, не заглядывая в стандарт,доки и.т.д.
B>>...
B>>А можно вот так:

IM>Ну раз уж мы отошли от исходной задачи "найти все ошибки" и перешли к задаче "переписать правильно", то вот мой вариант:


IM>
IM>#include <vector>
IM>#include <string>

IM>class Foo
IM>{
IM>public:
IM>    Foo(int j) { i.resize(j); }
IM>    virtual ~Foo() {}
IM>private:
IM>    std::vector<int> i;
IM>};

IM>class Bar : public Foo
IM>{
IM>public:
IM>    Bar(int j) : Foo(j) { i.resize(j); }
IM>private:
IM>    std::string i;
IM>};


IM>void main()
IM>{
IM>    Foo* f=new Foo(100);
IM>    Foo* b=new Bar(200);
IM>    *f = *b;
IM>    delete f;
IM>    delete b;
IM>}
IM>


Охотно соглашаюсь с тем, что твой вариант оптимальнее.

Тогда, возвращаясь к исходной задаче
class Foo
{
public:
    Foo(int j) { i=new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};

class Bar: Foo
{
public:
    Bar(int j) { i=new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};

void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;
}

и глядя на твой код можно найти следующие ошибки:
1. Функция main не по стандарту
2. Доступ к базовому классу из производного установлен неправильно
3. Деструктор базового класса невиртуальный -> утечка памяти
4. Не определён конструктор по умолчанию у базового класса,а в конструкторе производного нет явной инициализации базового
5. Не применили STL (хотя — ничего смешного)
Re[6]: Как я завалил собеседование
От: TMU Россия  
Дата: 24.01.07 07:53
Оценка: +1
S>>Яндексу +1 раз он так быстро тебя забраковал. Я видел компании где за неимением лучьших брали и таких, но это совсем не "солидные компании"
H>Напротив, очень зря меня Яндекс не взял . Да, многого не знаю, но главное, что голова есть на плечах и в сильной команде я, уверен, быстро дорасту до соответствующего уровня. А если не давать никому шанс, то скоро просто неоткуда будет брать хороших специалистов. Так как, чтобы стать таким надо пройти определенную школу, работая с сильными коллегами. А потом самому привлекать новичков, передавая им знания.


Молодой человек!(если такое обращение коробит — извиняюсь сразу)

Я за свою жизнь не написал ни строчки на плюсах (по работе, для себя кропал когда-то что-то).
В плюсах я не смыслю ни бельмеса. Я довольно слабо понимаю умные вещи, которые в этой ветке обсуждают умные люди.
Но! Мне и то понятно, что не взяли Вас правильно. Не обижайтесь, но мне кажется, что Вы делаете довольно типичную ошибку —
не усвоив и не осознав базовые концепции, видите проблему в частностях. Человек способен заучить огромный объем материала, но без понимания это мертвый груз. Практический совет — изучая что-то(собственно, неважно что именно) регулярно задавайте себе вопрос — а почему это именно так, а не иначе и что будет если сделать по другому. Помогает пониманию, знаю по опыту
В целом — удачи, уверенности в себе Вам, похоже, хватает
Re[7]: Как я завалил собеседование
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 24.01.07 08:13
Оценка:
Здравствуйте, TMU, Вы писали:

TMU>Вы делаете довольно типичную ошибку — не усвоив и не осознав базовые концепции, видите проблему в частностях.


Короче, парень "за деревьями не видит леса" (c) взято из Клэнси.

-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.