![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Угу. Только вот стандарт не предполагает обязательного использование виртуальных таблиц. И таблицы виртуальных функций - это лишь одна из реализаций полиморфизма, довольно успешная и поэтому получившая распространение. Если не ошибаюсь, в некоторых первых компиляторах встречались другие способы реализации, о которых успешно забыли. И если у меня кандидат пытается объяснить суть полиморфизма посредством таблиц, я его сразу прерываю и предлагаю ограничиваться в объяснении формулировками ООП и объемом стандарта С++ При этом, что очень странно, довольно часто сразу же возникают затруднения. Меня довольно часто привлекают к проведению технических интервью, и с моей точки зрения Ваши вопросы выглядят больше как способ продемонстрировать Вашу эрудицию, нежели выяснить действительную квалификацию кандидата. И настораживает фраза, что у Вас есть вопросы для засыпки особо наглых. То есть Вы выполняя техническое интервью, берете на себя не свойственные задачи: рубите квалифицированного специалиста из-за собственных предпочтений. Ваша - это всего лишь выяснить компетентность кандидата по весьма узкому техническому вопросу. Вопросы о психической адекватности обычно решается другими людьми, в частности специалистами отдела HR. Любопытно, были ли в Вашей практике отзывы : типа "Кандидат показал очень высокий уровень знаний в объеме стандарта С++. Оцениваю его квалификацию, как минимум не ниже моей, а может быть и выше"? Очень сомневаюсь -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Ну этот то вопрос как раз интересный. И задав его, я бы для начала хотел бы услышать ответы : допустимы, недопустимы. Если недопустимы, то как : компилятор не даст, или невозможно гарантировать безопасность кода. Если компилятор дает, но не гарантирована написание безопасного кода, то попросил бы привести пример. Если допустимы, то что надо учитывать. И разобравшись, насколько правильно кандидат понимает проблемы, я бы выслушал его личное мнение по данному вопросу о возможном использовании. И не столь важно, совпадет или не совпадет оно с моим( если не совпадет, то будет совпадать в случае если кандидат попадет в мою команду -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Вот это кстати верно. реализовать можно. правда надо учитывать что if - это statement а не expression.
Тут наверное ожидается; "Полиморфизм времени выполнения или времени компиляции?" Это сообщение отредактировал(а) Mayk - 12.11.2008, 15:04 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
| Torsten |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 10.6.2008 Где: Pskov Репутация: 3 Всего: 7 |
Почитав эту тему, и еще похожие и сам проходя интервью пришел к выводу, что во всех интервью обычно задают 50% вопросов, ответы на которые есть у Саттера...
Собственно идя на интервью рекомендую прочитать обе его книги + про шаблоны что-нибудь, типа Гаммы, Всиледеса или Александреску (хотя этот черт пишет сложно, раза по 2-3 перечитывать приходится чтобы некоторые вещи понять). Это сообщение отредактировал(а) Torsten - 12.11.2008, 16:38 --------------------
We have no begining, we have no end. We are infinite. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Ну не знаю. Вам просто не повезло. Когда я проходил и когда проводил сам, все обычно ограничивалось объемом книги Страструпа первого издания с поправками на стандарт. Проблема в том, что даже в этом объеме у меня из 10 кандидатов хороший отзыв получали не больше двух. Иногда шел и думал, что судя по резюме интервью будет чисто формальным для человека с таким-то опытом работы. А начинаешь спрашивать, получаешь ответы типа: - виртуальные функции можно переопределять в производных классах, в отличие невиртуальных. - в случае неудачи выделения памяти, глобальный new возвращает NULL Просто при проведении интервью надо четко понимать, что твоя задача не завалить кандидата убийственным вопросом, а выяснить в какой степени он знает С++ именно для повседневной работы над проектом в команде. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
есть переопределение, а есть перегрузка. и вроде как переопределение - это только для виртуальных, чтоб работал полиморфизм хотя могу и ошибаться в названиях да и все равно, имхо, так придираться к терминологии - не правильно в студии есть волшебный дефайн - кидать исключение или возвращать NULL |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
||||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а чем не устраивает такой ответ ?
И я, и я и я того же мнения (© из м/ф Винни Пух и все-все-все) |
||||
|
|||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
переопределение (overriding) - это создание в классе потомке функции с той-же сигнатурой, что и в классе предке перегрузка (overloading) - это создание функций с одним именем но разными наборами параметров в одном неймспейсе Добавлено через 1 минуту и 28 секунд тем, что он неправильный |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
J0ker, я ж написал - на собеседованиях придираться к терминологии - не правильно
ибо это не экзамен, а проверка знаний я говорю не про new(nothrow), а про new этим дефанойм меняется поведение самого new |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Ну вот приехали. Это не просто терминология, это понимание, что такое полиморфизм и когда нужно и когда ненужно использовать виртуальные функции и деструкторы. Причем я считаю, что этот вопрос просто так типа поддержать разговор.
Я набираю людей оценивая их знание С++. Иногда я понятия не имею, на каком компиляторе они в конечном счете будут выполнять проект. Мне известно только одно: все эти компиляторы как минимум процентов 93-97% соответствуют стандарту. Вот будьте любезны его и знать. Добавлено @ 20:12 Так и называется :переопределением -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Угу. А в проекте у кандидата, допустим, предполагается написание приложения, которое должно компилироваться под Visual C++, gcc и acc соотвественно работать под Window, Linux и HP-UX. Добавлено через 2 минуты и 42 секунды
Именно, и собеседование как раз и выявило значительный пробел в понимании различия виртуальных и не виртуальных функций -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
ну если вы функцию определили и порешили использовать, то, пардон, как вы без ее реализации обойдетесь? обзывания "переопределение" и "перегрузка" относится к сигнатурам - реализация - это следствие Добавлено через 1 минуту и 56 секунд
причем тут терминология это РАЗНЫЕ вещи имеющие РАЗНЫЕ названия они НЕ СИНОНИМЫ, их нельзя смешивать и иметь личное мнение по этому поводу |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |