// -----------------------------------------------
// 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;
}
Мини-тест кандидата
В смысле, как БЫСТРО определить, что человек действительно знает C++?
Есть у кого-нибудь опыт или мысли? Мои соображения представлены ниже. Вопрос, адекватны ли они? =)
Код:
В примере с манагером ресурса нет никаких упоминаний про конструктор копирования и оператор "=", а второй пример полностью валиден, т.к. исключение может ловиться в принципе где угодно.
Цитата:
а второй пример полностью валиден
Хм. А что насчет new и следующего за ним исключения? Где будет выполнятся delete?
И разве во втором примере в функции someFunc2() нет проблемы? Разве это "полностью валидная" ситуация?
Цитата: Odissey_
Хм. А что насчет new и следующего за ним исключения? Где будет выполнятся delete?
Гы, прозевал:D
Вопрос в адекватности теста
ИМХО для студентов первого курса.
Цитата:
В смысле, как БЫСТРО определить, что человек действительно знает C++?
Никто не говорит, что тест хорош... в этом-то и вопрос
Быстрый тест для кандидатов на работу на позицию C++-программист.
Тест в плане навыков работы именно с языком С++.
Понятно, что реальные знания и навыки проявятся (или нет) на испытательном сроке, а на собеседовании рассказать можно много всякого.
Хотелось бы быстро понять, нужен ли испытательный срок или нет
Odissey_, спасибо.