Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра в С++, 7-й тайм 
V
    Опции темы
Любитель
Дата 29.8.2007, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(zkv @  29.8.2007,  23:41 Найти цитируемый пост)
Но рискну утверждать, что для собеседования задание может считаться вполне приемлимым

А я так не считаю. Для вопроса в универе как раз нормально - многие преподя любят спрашивать подобную чушь, а вот при собеседование при приёме на работу - ни в коем случае.


--------------------
PM MAIL ICQ Skype   Вверх
zkv
Дата 30.8.2007, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Любитель, я думаю хороший тест должен быть составлен так, чтобы никто не мог выбить максимальный балл.
Должны быть простые вопросы, сложные, и почти нерешаемые. 
Ты ведь не станешь жаловаться на то, что в тестах на IQ некоторые вопросы слишком сложные?
Если присутствовать только простые вопросы будут, то по какому принципу отсеивать кандидатов?
Конкретно этот решенный вопрос будет свидетельствовать о способности кандидата разбирать чужой код, 
если справится с этим чудовищем, то со всем остальным и подавно.
Мой итог: вопрос имеет право на жизнь, при правильной оценки работодателем решения кандидата.
PM MAIL   Вверх
FiMa1
Дата 30.8.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(zkv @ 29.8.2007,  23:41)
FiMa1, интересно, а сколько времени давали? 
Но рискну утверждать, что для собеседования задание может считаться вполне приемлимым. 
В конце-концов, возможно, это задание шло на правах "повышенной сложности", и было не обязательным для решения.

То, что за такие функции в практике надо руки отрывать - неоспоримый факт, но, в рамках собеседования, задача, имхо, имеет право на существование.
1. Проверка первой реакции человека на предложенную задачу - первое что хочется сделать, это действительно оторвать руки собеседника и отойти в сторону, но с какой стороны это охарактеризует вас для работодателя?
2. Проверка способностей к разбору чужого кода + знание побитовых операций, префиксного, постфиксного декрементов в целом...
На вопрос сколько было дано времени на решение - думаю около 15 минут, вряд ли больше... В любом, случае, мое мнение таково - хватать ручку, бумагу, задавать входные значения и анализировать, анализировать (Freak_FB, насколько я понимаю, анализировал под дебагерром). Лучше анализировать вслух, тогда, если не хватит времени, будет видно, что все усилия были приложены. В конце концов, я думаю, zkv был прав насчет того, что задание было не обязательным для решения.
Вообще, забавно, что вы заговорили о самом собеседовании.. Вот вам еще задачка, заданная там же:
Есть некий класс A, где-то в программе создан указатель на этот класс и объект типа данного класса. Как реализован класс, что будет ошибка компиляции, в строке обозначенной в коде ниже. Что это за ошибка? Каково тело класса? Подсказка: вопрос связан с областью видимости переменных.
Старайтесь провести анализ без использования компилятора для моделирования реальных условий  smile !
Код
class A
{
    // ... какое-то тело
};

int main()
{
    A *p;
    A obj; // здесь возникнет ошибка компиляции

    return 0;
}


Это сообщение отредактировал(а) FiMa1 - 30.8.2007, 08:49
PM   Вверх
zkv
Дата 30.8.2007, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(FiMa1 @  30.8.2007,  08:47 Найти цитируемый пост)
Подсказка: вопрос связан с областью видимости переменных.

у меня не связано smile
Код

class A
{
  A(){}
};

PM MAIL   Вверх
Shaggie
Дата 30.8.2007, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



есть конструктор с параметрами и нет конструктора без параметров.


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
FiMa1
Дата 30.8.2007, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(Shaggie @ 30.8.2007,  09:00)
есть конструктор с параметрами и нет конструктора без параметров.

Это первое что я сказал, но ВОПРОС СВЯЗАН С ОБЛАСТЬЮ ВИДИМОСТИ ПЕРЕМЕННЫХ, ответили мне   smile (здесь изменено для моделирования ситуации)...

Добавлено @ 09:06
Цитата(zkv @ 30.8.2007,  08:59)
Цитата(FiMa1 @  30.8.2007,  08:47 Найти цитируемый пост)
Подсказка: вопрос связан с областью видимости переменных.

у меня не связано smile
Код

class A
{
  A(){}
};

Что имел в виду?

Это сообщение отредактировал(а) FiMa1 - 30.8.2007, 09:07
PM   Вверх
zkv
Дата 30.8.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(FiMa1 @  30.8.2007,  09:03 Найти цитируемый пост)
Что имел в виду?

что такой код выдаст именно такую ошибку, что и требовалось smile
Код

class A
{
  A(){}
};
int main()
{
    A *p;
    A obj; // здесь возникнет ошибка компиляции
    return 0;
}

PM MAIL   Вверх
FiMa1
Дата 30.8.2007, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(zkv @ 30.8.2007,  09:12)
что такой код выдаст именно такую ошибку, что и требовалось

Ладно не будем тянуть кота за х..., zkv - пять баллов, ты прав и успешно принят на работу  smile ! Я не сомневаюсь, что ты знаешь о чем говоришь, но не мог бы раскрыть чуть более подробнее для последователей...

Это сообщение отредактировал(а) FiMa1 - 30.8.2007, 09:18
PM   Вверх
zkv
Дата 30.8.2007, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(FiMa1 @  30.8.2007,  09:17 Найти цитируемый пост)
zkv - пять баллов, ты прав,

дык у меня решение не связано с областью видимости.

все просто, по умолчанию все члены класса закрытые, можно было явно написать private: или protected: перед конструктором, только не так интересно будет smile
ну а дальше ясно - указатель он и в африке указатель, он и на абстрактный тип может быть, для него конструктор не нужен
а вот для объекта вызывается конструктор умолчания, а он закрыт, вот компилятор и сообщает: "ты определись давай!"
PM MAIL   Вверх
FiMa1
Дата 30.8.2007, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(zkv @ 30.8.2007,  09:22)
дык у меня решение не связано с областью видимости.
все просто, по умолчанию все члены класса закрытые, можно было явно написать private: или protected: перед конструктором, только не так интересно будет smile
ну а дальше ясно - указатель он и в африке указатель, он и на абстрактный тип может быть, для него конструктор не нужен
а вот для объекта вызывается конструктор умолчания, а он закрыт, вот компилятор и сообщает: "ты определись давай!"

 smile  тогда ставим слушателям на собеседовании не зачет, потому что однозначно убеждали, что cannot access private member declared in class 'A', в данном случае связана с областью видимости, т.к., в их случае деструктор, закрыт... Меж тем, может быть правда на их стороне и данная ситуация подпадает под понятие области видимости...

Это сообщение отредактировал(а) FiMa1 - 30.8.2007, 09:29
PM   Вверх
zkv
Дата 30.8.2007, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



FiMa1, я под областью видимости привык понимать следующее:
Код

{
  int a;
//начало области видимости a
...
//конец области видимости a
}

а то о чем шла речь выше - это модификаторы доступа.
Может где-нибудь принято называть по другому.
PM MAIL   Вверх
UnrealMan
Дата 30.8.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(FiMa1 @  30.8.2007,  09:28 Найти цитируемый пост)
тогда ставим слушателям на собеседовании не зачет, потому что однозначно убеждали, что cannot access private member declared in class 'A', в данном случае связана с областью видимости

Это каким надо быть извращенцем, чтобы accessibility перевести на русский как область видимости. В топку таких работодателей. Лучше не иметь с ними никаких дел.
PM MAIL   Вверх
FiMa1
Дата 30.8.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(UnrealMan @ 30.8.2007,  10:08)
Это каким надо быть извращенцем, чтобы accessibility перевести на русский как область видимости. В топку таких работодателей.

О переводе речь не ведется, cannot access private member declared in class 'A' - копипаст трактования ошибки студией..
Насколько я понял, само то, что закрытые классом конструктор/деструктор невидимы (а по моему, лучше недоступны) на данном участке программы (Керниган: область видимости - участок программы, где это имя известно), подгоняли под понятие области видимости.
Пробежался по стандарту - в разделе Declarative regions and scopes ничего про данный взгляд на область видимости не нашел...
PM   Вверх
UnrealMan
Дата 30.8.2007, 10:43 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(FiMa1 @  30.8.2007,  10:21 Найти цитируемый пост)
Насколько я понял, само то, что закрытые классом конструктор/деструктор невидимы (а по моему, лучше недоступны) 

Видимость и доступность – совсем разные вещи. Давай посмотрим на такой пример:

Код
struct A
{
    void f(double) {}
private:
    void f(int) {}
};

int main()
{
    A().f(0.); // OK
    A().f(0);  // error
}

При разрешении перегрузки метод void f(int) видим, но для вызова он не доступен. Поэтому в первом случае, когда разрешение перегрузки оказывается в пользу вызова открытой функции, проблем не возникает, когда же оно оказывается в пользу вызова закрытой функции, возникает ошибка.

Цитата(FiMa1 @  30.8.2007,  10:21 Найти цитируемый пост)
Пробежался по стандарту - в разделе Declarative regions and scopes ничего про данный взгляд на область видимости не нашел...

Цитата(ISO/IEC 14­882:2003(E) §3.3 Declarative regions and scopes)
In general, each particular name is valid only within some possibly discontiguous portion of program text called its scope.

Вот scope – это и есть область видимости.


Это сообщение отредактировал(а) UnrealMan - 30.8.2007, 10:48
PM MAIL   Вверх
FiMa1
Дата 30.8.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(UnrealMan @ 30.8.2007,  10:43)
Видимость и доступность – совсем разные вещи.

По-моему из моей фразы:
Цитата
Насколько я понял, само то, что закрытые классом конструктор/деструктор невидимы (а по моему, лучше недоступны)
 видно, что я осознаю эту разницу и, разумеется, согласен с тем, что ты говоришь..
Цитата
Вот scope – это и есть область видимости.

Спасибо  smile, но это мне тоже было известно...
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1011 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.