Вопрос по С++ на собеседовании
От: bauer  
Дата: 20.01.08 07:19
Оценка: -30 :))
Я недавно был на собеседовании, где мне задали два следующих вопроса по С++, которые мне кажутся откровенно дурацкими и совершенно не относящимися к программированию в реальной жизни. У меня 10 летний опыт программированния на С/C++, и за свою практику я такого не встречал.

Вопросы следующие:

Дана программа, в которой якобы есть ошибка. Сказать, почему программа работает неправильно.
#include <stdio.h>

class animal
{
public:
    animal()
    {
        init();
    }

    virtual void init()
    {}
};

class ground_hog : public animal
{
public:
    char const * appears;

    virtual void init()
    {
        appears = "Feb 2";
    }
};

int main()
{
    ground_hog x;
    printf("ground hog appears %s\n", x.appears);
}

Второй вопрос сходного типа. Что неправильно в программе:
class drink
{
public:
    // ...
    virtual bool spiked();
};

class martini : public drink
{
    double gin;
    double vermouth;

public:
    virtual bool spiked()
    {
        // ...
    }
};

int scan(drink drinks[], int n)
{
    for (int i = 0; i < n; ++i)
    {
        if (!drinks[i].spiked())
            return i;
    }

    return -1;
}

martini drinks[100];
int select = scan(drinks, 100);

Надеюсь вы согласитесь, что вопросы абсолютно дурацкие. Тот, кто проводил со мной собеседование, скорее всего посчитал, что я ответил неправильно... Огорчает то, что задают вопросы академического характера, которые меня абсолютно не интересуют, потому что практически никто так код не пишет. Но они на этом основывают свое представление о кандидате...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.