Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Мини-тест кандидата

7.3K
29 ноября 2007 года
H010d Freeze
143 / / 08.08.2006
Коллеги, всем доброго времени суток. Есть задачка. Правда она связана не с проблемой решения конкретной задачи на C++, а оценкой возможности это делать.
В смысле, как БЫСТРО определить, что человек действительно знает C++?
Есть у кого-нибудь опыт или мысли? Мои соображения представлены ниже. Вопрос, адекватны ли они? =)

Код:
// -----------------------------------------------
// Task 1
// -----------------------------------------------
// Проанализируйте следующий код на C++.
// Для чего может использоваться класс Mistery?

template<class X> class Mistery
{
private:
    X *ptr;

public:
    Mistery(X *p) : ptr(p) {}
    ~Mistery() { delete ptr; }

    X& operator*  () const { return *ptr; }
    X* operator-> () const { return ptr;  }
    X* get        () const { return ptr;  }
};

// -----------------------------------------------
// Task 2
// -----------------------------------------------
// Проанализируйте следующий код на C++:
// Какие проблемы есть в функциях someFunc1 и someFunc2? Как их
// следует устранить?

class SomeException {};

class SomeClass
{
private:
    int tag;

public:
    SomeClass(int atag) : tag(atag) {}
    void someMethod();
};

void SomeClass::someMethod()
{
  if (tag)
    throw SomeException();
}

void someFunc1()
{
  SomeClass *SomeObj = new SomeClass(0);
  SomeObj->someMethod();
  delete SomeObj;
}

void someFunc2()
{
  SomeClass *SomeObj = new SomeClass(1);
  SomeObj->someMethod();
  delete SomeObj;
}
260
29 ноября 2007 года
Ramon
1.1K / / 16.08.2003
Незачот.

В примере с манагером ресурса нет никаких упоминаний про конструктор копирования и оператор "=", а второй пример полностью валиден, т.к. исключение может ловиться в принципе где угодно.
361
29 ноября 2007 года
Odissey_
661 / / 19.09.2006
Цитата:
а второй пример полностью валиден


Хм. А что насчет new и следующего за ним исключения? Где будет выполнятся delete?

7.3K
29 ноября 2007 года
H010d Freeze
143 / / 08.08.2006
Конструктор копирования и оператор "=" намеряно опущены для простоты.

И разве во втором примере в функции someFunc2() нет проблемы? Разве это "полностью валидная" ситуация?
260
29 ноября 2007 года
Ramon
1.1K / / 16.08.2003
Цитата: Odissey_
Хм. А что насчет new и следующего за ним исключения? Где будет выполнятся delete?



Гы, прозевал:D

7.3K
29 ноября 2007 года
H010d Freeze
143 / / 08.08.2006
Вобщем-то вопрос не в задаче пройти тест =)
Вопрос в адекватности теста
3
29 ноября 2007 года
Green
4.8K / / 20.01.2000
А для кого этот тест?
ИМХО для студентов первого курса.
7.3K
29 ноября 2007 года
H010d Freeze
143 / / 08.08.2006
Green, процитирую себя же =)
Цитата:

В смысле, как БЫСТРО определить, что человек действительно знает C++?



Никто не говорит, что тест хорош... в этом-то и вопрос

7.3K
29 ноября 2007 года
H010d Freeze
143 / / 08.08.2006
Green, пардон, я не правильно понял =)
Быстрый тест для кандидатов на работу на позицию C++-программист.
Тест в плане навыков работы именно с языком С++.
Понятно, что реальные знания и навыки проявятся (или нет) на испытательном сроке, а на собеседовании рассказать можно много всякого.
Хотелось бы быстро понять, нужен ли испытательный срок или нет
361
29 ноября 2007 года
Odissey_
661 / / 19.09.2006
Ну Yandex например тестирует кандидатов следующим тестом
Причем он висит у них на сайте, и любой может с ним ознакомится.
Есть хорошая статья о тестировании разработчиков игр. Но в ней очень высокие требования.
7.3K
29 ноября 2007 года
H010d Freeze
143 / / 08.08.2006
Odissey_, спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог