Интервьюер (И): Я вижу, что многого Вы не знаете и Вам еще много чему нужно учиться. Некоторые вещи, которые должен знать каждый, явно прошли мимо Вас.
Я (Я): Во-первых, я всю жизнь учусь, во-вторых, все знать невозможно, ну а в-третьих, у каждого свое понимание, что должен знать каждый, а что нет. Уверен, что и Вы не каждый вопрос ответите сходу.
(И) смотрит на меня с интересом.
(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool?
(И): Почему нельзя? Можно!
(Я): Хорошо, язык это позволяет, но делать так не стоит. Почему?
(И)(задумчиво): Неоднозначности тут не возникнет... Вы не правы!
(Я): Хорошо, подумайте над этим. Вопрос на самом деле нуууу очень простой!
Вежливо прощаемся.
Через день звонит мне на трубку.
(И): Здравствуйте, С.А., это Вас беспокоят из фирмы XXX. Мы тут подумали...
Па-па-па-пам! Неужели берут?
(И): Нам кажется, Вы все-таки заблуждаетесь, и никаких препятствий для такой перегрузки нет! Объясните, почему Вы так считаете, что этого делать нельзя?
(Я) (еле сдерживаясь, чтобы не начать кататься от смеха по полу): А Вы меня берете, или нет?
(И): Нет, Вы нам не подходите!
(Я): Тогда подумайте над этим вопросом сами.
Кладу трубку.
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool?
Ты случайно не перепутал char* со string?
Re[2]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, slava_phirsov, Вы писали:
_>>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool?
Ytz>Ты случайно не перепутал char* со string?
Ответ отрицательный (C) Terminator
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[3]: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>Здравствуйте, Ytz, Вы писали:
Ytz>>Здравствуйте, slava_phirsov, Вы писали:
_>>>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool?
Ytz>>Ты случайно не перепутал char* со string?
_>Ответ отрицательный (C) Terminator
Ну тогда если никто еще не перегрузит с char*, то проблем быть не должно Я не прав?
Re: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool?
А правда, почему?
Re[4]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, slava_phirsov, Вы писали:
_>>Здравствуйте, Ytz, Вы писали:
Ytz>>>Здравствуйте, slava_phirsov, Вы писали:
_>>>>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool?
Ytz>>>Ты случайно не перепутал char* со string?
_>>Ответ отрицательный (C) Terminator
Ytz>Ну тогда если никто еще не перегрузит с char*, то проблем быть не должно Я не прав?
А если вызвать с метод "bla-bla" ?
Re[5]: Собеседование: соискатель наносит ответный удар
Здравствуйте, placement_new, Вы писали:
Ytz>>Ну тогда если никто еще не перегрузит с char*, то проблем быть не должно Я не прав?
_>А если вызвать с метод "bla-bla" ?
Будет неявное приведение к string
Re[4]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Ytz, Вы писали:
Ytz>Ну тогда если никто еще не перегрузит с char*, то проблем быть не должно Я не прав?
Нет, не прав. Случай действительно из реальной жизни. Все дело в том, что... Стоп, а не Вы ли это, уважаемый (И)? Эээээ нет, милостивый государь, думайте сами. Или шлите мне офер, почта и телефон в резюме, надеюсь, Вы его еще не выкинули
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[5]: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>Здравствуйте, Ytz, Вы писали:
Ytz>>Ну тогда если никто еще не перегрузит с char*, то проблем быть не должно Я не прав?
_>Нет, не прав. Случай действительно из реальной жизни. Все дело в том, что... Стоп, а не Вы ли это, уважаемый (И)?
Моя фотография и имя с фамилией в профиле, можете сами решить тот я человек или нет.
Re[6]: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>Здравствуйте, placement_new, Вы писали:
_>>А если вызвать с метод "bla-bla" ?
_>Tango down. Вопрос действительно простенький, как и было сказано. Но, видите, и в самом деле, очевидное не каждому бросается в глаза.
И что? Если не перегружен char*, то просто будет приведение к string. Вполне ожидаемое поведение
Re[6]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, slava_phirsov, Вы писали:
_>>Здравствуйте, placement_new, Вы писали:
_>>>А если вызвать с метод "bla-bla" ?
_>>Tango down. Вопрос действительно простенький, как и было сказано. Но, видите, и в самом деле, очевидное не каждому бросается в глаза.
Ytz>И что? Если не перегружен char*, то просто будет приведение к string. Вполне ожидаемое поведение
В том то и проблема, что приведение будет к bool.
Re[7]: Собеседование: соискатель наносит ответный удар
Здравствуйте, placement_new, Вы писали:
Ytz>>И что? Если не перегружен char*, то просто будет приведение к string. Вполне ожидаемое поведение
_>В том то и проблема, что приведение будет к bool.
Да, не подумал.
Re: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>Самые смешных людей я встречал на собеседованиях
_>Интервьюер (И): Я вижу, что многого Вы не знаете и Вам еще много чему нужно учиться. Некоторые вещи, которые должен знать каждый, явно прошли мимо Вас. _>Я (Я): Во-первых, я всю жизнь учусь, во-вторых, все знать невозможно, ну а в-третьих, у каждого свое понимание, что должен знать каждый, а что нет. Уверен, что и Вы не каждый вопрос ответите сходу. _>(И) смотрит на меня с интересом. _>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool? _>(И): Почему нельзя? Можно! _>(Я): Хорошо, язык это позволяет, но делать так не стоит. Почему? _>(И)(задумчиво): Неоднозначности тут не возникнет... Вы не правы! _>(Я): Хорошо, подумайте над этим. Вопрос на самом деле нуууу очень простой! _>Вежливо прощаемся.
_>Через день звонит мне на трубку. _>(И): Здравствуйте, С.А., это Вас беспокоят из фирмы XXX. Мы тут подумали... _>Па-па-па-пам! Неужели берут? _>(И): Нам кажется, Вы все-таки заблуждаетесь, и никаких препятствий для такой перегрузки нет! Объясните, почему Вы так считаете, что этого делать нельзя? _>(Я) (еле сдерживаясь, чтобы не начать кататься от смеха по полу): А Вы меня берете, или нет? _>(И): Нет, Вы нам не подходите! _>(Я): Тогда подумайте над этим вопросом сами. _>Кладу трубку.
Блин. Один "каверзный" вопрос придумал и "радости полные штаны"®
Здравствуйте, 0x7be, Вы писали:
0>Здравствуйте, slava_phirsov, Вы писали:
_>>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool? 0>А правда, почему?
перегрузите оба и посмотрите, какой вызовется на const char *
Здравствуйте, Ytz, Вы писали:
_>>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool?
Ytz>Ты случайно не перепутал char* со string?
char*, string и bool вместе как раз можно перегружать, а часто даже нужно. Причём возможны любые комбинации char*\string, char*\bool кроме string\bool.
Re[4]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Evgeniy Skvortsov, Вы писали:
ES>а можно пояснить почему не вызывается вариант с std::string ?
Извиняюсь за неточный ответ. Лень гуглить. Но фишка в том, что "" имеет тип char* (const-ы я опустил), т.е. указатель. Указатель это фактически число, которое легко преобразуется в int, а bool — это фактически и есть int, причём это встроенный тип.
А string — это как бы пользовательский класс, причём шаблон. Понятно, что компилятор предпочтёт преобразовать константу во встроенный тип, чем не понятно во что.
Вообще — серьёзная дыра. Хотели строки сделать пользовательскими типами и получилось то, что получилось.
Re[2]: Собеседование: соискатель наносит ответный удар
_>>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool? 0>А правда, почему?
функции
void makeSomething(bool par);
void makeSomething(const std::string &par);
Являются примерами довольно неудачного проектирования.
Параметр типа bool хорошо подходит для "примитивных" сеттеров
void setEnabled(bool par);
void setVisible(bool par);
Для сложных вызовов типа (реальный пример из Win32, кстати)
CreateEvent(NULL, TRUE, FALSE, NULL);
Попробуйте сказать по памяти что означает второй и третий параметр.
А как бы было хорошо написать
CreateEvent(NULL, AUTO_RESET_ENABLED, CREATE_SIGNALED, NULL);
В современных API bool имеют тенденцию заменяться на enum:
str.replace("%USER%", user, false); // Qt 3
str.replace("%USER%", user, Qt::CaseInsensitive); // Qt 4
Второй вариант куда читабельней
Проектировать API по человечески надо, тогда таких граблей не будет
Re[7]: Собеседование: соискатель наносит ответный удар
Здравствуйте, alzt, Вы писали:
A>А string — это как бы пользовательский класс, причём шаблон. Понятно, что компилятор предпочтёт преобразовать константу во встроенный тип, чем не понятно во что. A>Вообще — серьёзная дыра. Хотели строки сделать пользовательскими типами и получилось то, что получилось.
Имхо дыра в том, что при наличии неопределённости компилятор принимает решение.
Re[4]: Собеседование: соискатель наносит ответный удар
Здравствуйте, MasterZiv, Вы писали:
MZ>On 25.08.2011 10:59, Evgeniy Skvortsov wrote:
>> а можно пояснить почему не вызывается вариант с std::string ?
MZ>Более высокий приоритет имеет преобразование к встроенному типу bool, MZ>чем к std::string, который класс с конструктором.
Спасибо всем ответившим.
Еще есть один вопрос, для чего в примере используется константная ссылка ?
Я пробовал разные варианта — без константы, без ссылки и всякие сочетания — результат один — преобразовывается к bool.
Re[6]: Собеседование: соискатель наносит ответный удар
ES>Еще есть один вопрос, для чего в примере используется константная ссылка ? ES>Я пробовал разные варианта — без константы, без ссылки и всякие сочетания — результат один — преобразовывается к bool.
Константная ссылка чтобы можно было создать ссылку на временный объект.
Re[6]: Собеседование: соискатель наносит ответный удар
On 25.08.2011 12:21, Evgeniy Skvortsov wrote:
> Еще есть один вопрос, для чего в примере используется константная ссылка ? > Я пробовал разные варианта — без константы, без ссылки и всякие сочетания — > результат один — преобразовывается к bool.
К неконстантной ссылке на string по стандарту нельзя преобразовать строковый
литерал, потому что инициализация неконстантной ссылки ссылкой на временный
объект запрещена. Но не все компиляторы эту заповедь соблюдают.
Posted via RSDN NNTP Server 2.1 beta
Re: Собеседование: соискатель наносит ответный удар
Здравствуйте, 0x7be, Вы писали:
A>>А string — это как бы пользовательский класс, причём шаблон. Понятно, что компилятор предпочтёт преобразовать константу во встроенный тип, чем не понятно во что. A>>Вообще — серьёзная дыра. Хотели строки сделать пользовательскими типами и получилось то, что получилось. 0>Имхо дыра в том, что при наличии неопределённости компилятор принимает решение.
Тут нет неопределённости. Всё очень чётко расписано в стандарте. Просто всё это очень неинтуитивно и очень многие на это напарываются. Либо по незнанию, либо по недосмотру.
Re[6]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Evgeniy Skvortsov, Вы писали:
ES>Спасибо всем ответившим. ES>Еще есть один вопрос, для чего в примере используется константная ссылка ? ES>Я пробовал разные варианта — без константы, без ссылки и всякие сочетания — результат один — преобразовывается к bool.
Добавлю к 2м ответившим. Что как минимум константная ссылка это правило хорошего тона. Если функция не изменяет параметр, то надо либо передавать по значению, либо как константную ссылку.
Если же функция изменяет параметр, то стоит использовать неконстантную ссылку (или указатель), но в данном случае это маловероятно, т.к. метод с таким же названием принимает bool.
Re[3]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Handie, Вы писали:
_>>>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool? 0>>А правда, почему?
H>Проектировать API по человечески надо, тогда таких граблей не будет
Возможно требуется переопределить operator<<. Там, конечно тоже enum-ы не помешают, но что делать, если уже есть API с bool-ами. Особенно часто возникает при интеграции с чем-либо.
Re: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>Самые смешных людей я встречал на собеседованиях
_>Интервьюер (И): Я вижу, что многого Вы не знаете и Вам еще много чему нужно учиться. Некоторые вещи, которые должен знать каждый, явно прошли мимо Вас. _>Я (Я): Во-первых, я всю жизнь учусь, во-вторых, все знать невозможно, ну а в-третьих, у каждого свое понимание, что должен знать каждый, а что нет. Уверен, что и Вы не каждый вопрос ответите сходу. _>(И) смотрит на меня с интересом. _>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool? _>(И): Почему нельзя? Можно! _>(Я): Хорошо, язык это позволяет, но делать так не стоит. Почему? _>(И)(задумчиво): Неоднозначности тут не возникнет... Вы не правы! _>(Я): Хорошо, подумайте над этим. Вопрос на самом деле нуууу очень простой! _>Вежливо прощаемся.
_>Через день звонит мне на трубку. _>(И): Здравствуйте, С.А., это Вас беспокоят из фирмы XXX. Мы тут подумали... _>Па-па-па-пам! Неужели берут? _>(И): Нам кажется, Вы все-таки заблуждаетесь, и никаких препятствий для такой перегрузки нет! Объясните, почему Вы так считаете, что этого делать нельзя? _>(Я) (еле сдерживаясь, чтобы не начать кататься от смеха по полу): А Вы меня берете, или нет? _>(И): Нет, Вы нам не подходите! _>(Я): Тогда подумайте над этим вопросом сами. _>Кладу трубку.
Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. "Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++,
в классе-потомке вызвать приватный метод класса-предка?"
99,99% Вам ответят, что "нет", а правильный ответ — "да"
Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>в классе-потомке вызвать приватный метод класса-предка?" ДТ>99,99% Вам ответят, что "нет", а правильный ответ — "да"
Правильный ответ — "а зачем ?", т.к. метод и делается приватным с целью скрыть его от потомков
Re[3]: Собеседование: соискатель наносит ответный удар
Здравствуйте, ishare, Вы писали:
I>Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>>в классе-потомке вызвать приватный метод класса-предка?" ДТ>>99,99% Вам ответят, что "нет", а правильный ответ — "да"
I>Правильный ответ — "а зачем ?", т.к. метод и делается приватным с целью скрыть его от потомков
"Зачем?" говорите?
А чтобы показать человеку, который проводит с Вами собеседование, какой он ламер.
Ведь с этой же целью топикстартер задавал свой вопрос?
ДТ>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>в классе-потомке вызвать приватный метод класса-предка?" ДТ>99,99% Вам ответят, что "нет", а правильный ответ — "да"
И как его вызвать?
Re[3]: Собеседование: соискатель наносит ответный удар
Здравствуйте, sysenter, Вы писали:
ДТ>>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>>в классе-потомке вызвать приватный метод класса-предка?" ДТ>>99,99% Вам ответят, что "нет", а правильный ответ — "да"
S>И как его вызвать?
Видимо, имеется в виду спецификатор friend в базовом классе для класса наследника
Re[3]: Собеседование: соискатель наносит ответный удар
Здравствуйте, sysenter, Вы писали:
ДТ>>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>>в классе-потомке вызвать приватный метод класса-предка?" ДТ>>99,99% Вам ответят, что "нет", а правильный ответ — "да" S>И как его вызвать?
Наверное при помощи предварительного #define private public или аналогичным методом в комстроке компилятора.
Re[2]: Собеседование: соискатель наносит ответный удар
Здравствуйте, sysenter, Вы писали:
ДТ>>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>>в классе-потомке вызвать приватный метод класса-предка?" ДТ>>99,99% Вам ответят, что "нет", а правильный ответ — "да"
S>И как его вызвать? Читайте мой бильд или платите бапки.
{Топикстартер ведь тоже так и не ответил своему интервьюеру)
Здравствуйте, quwy, Вы писали:
Q>Здравствуйте, sysenter, Вы писали:
ДТ>>>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>>>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>>>в классе-потомке вызвать приватный метод класса-предка?" ДТ>>>99,99% Вам ответят, что "нет", а правильный ответ — "да" S>>И как его вызвать? Q>Наверное при помощи предварительного #define private public или аналогичным методом в комстроке компилятора.
Здравствуйте, TimurSPB, Вы писали:
TSP>Никогда бы не стал делать такую перегрузку. Да и в отладчике ловиться такой глюк очень легко.
Пример был взят из реальной жизни. Реального кода, созданного реальным программистом (между прочим, с профильным образованием, N-летним опытом, и прочими — хотел сказать "понтами", но не скажу, потому как мне этот человек ничего плохого не сделал). На самом деле, у функции были еще аргументы, и использовался, ЕМНИП, не std::string, а QString, и ситуация была сложнее описанной: была константа типа QString, потом ее заменили на const char*, уж не помню, из каких соображений, проблемы с макросом tr() , как-то так. И после этой эпической замены рвануло совершенно в неожиданном месте. "Эффект бабочки", однако. А отловилось — совершенно верно, при помощи gdb прошелся по стеку вызовов.
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re: Собеседование: соискатель наносит ответный удар
А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет.
Re[5]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет.
Их там слишком много. Соответственно, чем больше опыта, тем больше граблей человек знает.
Re[3]: Собеседование: соискатель наносит ответный удар
Здравствуйте, alzt, Вы писали:
A>Здравствуйте, Паблик Морозов, Вы писали:
ПМ>>А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет.
A>Их там слишком много. Соответственно, чем больше опыта, тем больше граблей человек знает.
Или уже начинает забывать, почему применяет какую-либо практику. Просто забыл уже про ту конкретную граблю... а вот практика уже в подкорке...
Неоконченная мысль всегда казалась Шри Япутре слишком
Re[5]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Доктор ТуамОсес, Вы писали:
Q>>Наверное при помощи предварительного #define private public или аналогичным методом в комстроке компилятора. ДТ>Я же сказал без грязных хаков
Грязный хак -- это таблицу виртуальных методов парсить, а это вполне себе чистый хак, ИМХО.
Re: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали:
_>(Я): Вот например, простенький пример из жизни: почему в C++ нельзя перегружать функцию по const string& и bool? _>(И): Почему нельзя? Можно!
Вы ошиблись,
_>(Я): Хорошо, язык это позволяет, но делать так не стоит. Почему?
Признаете что ошиблись.
_>(И)(задумчиво): Неоднозначности тут не возникнет... Вы не правы!
+1
_>(Я): Хорошо, подумайте над этим. Вопрос на самом деле нуууу очень простой! _>Вежливо прощаемся.
Я вот тоже смотрю на вопрос и тупо не понимаю отчего у вас в голове могло сформироваться такое мнение.
Пример с вызовом функции с char* это нелепость какая то. Т.е. с какого перепугу програмист вызывая func("hello") будет ожидать преобразования типа в string?
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет.
Более того, изначальная история в вольном изложении для непосвященного человека вроде меня выглядит так:
Топиккастер обнаружил грабли на одной из улиц, после чего пометил всю улицу как запретную, а затем начал спрашивать у интервьюера, почему нельзя ходить по той улице. Ну там же грабли лежат, правильно?
Re[4]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>Здравствуйте, sysenter, Вы писали:
ДТ>>>Подкину Вас ещё вопросик в Вашу коллекцию для хождения на собеседования. ДТ>>>"Можно ли без всяких "грязных хаков", чисто используя стандартные средства C++, ДТ>>>в классе-потомке вызвать приватный метод класса-предка?" ДТ>>>99,99% Вам ответят, что "нет", а правильный ответ — "да"
S>>И как его вызвать? ДТ>Читайте мой бильд или платите бапки. ДТ>{Топикстартер ведь тоже так и не ответил своему интервьюеру)
На самом деле Дохтур ГуамОсек тоже не знает ответа. Он просто где-то сPIздил этот вопрос. В полне возможно, что у такого же "эксперта" как и он сам.
Re: Собеседование: соискатель наносит ответный удар
Здравствуйте, slava_phirsov, Вы писали: _>Кладу трубку.
Меня после чем-то похожей истории на работу взяли. Будущий начальник спрашивал что-то про сиквел и настаивал на неправильном ответе. С собеседования послал. Ну я домой пришел, еще раз проверил свой ответ, и написал письмо ему. Через 20 минут звонок "когда сможешь выйти на работу?". Чел в итоге дельный оказался, просто временно затупил.
Re[5]: Собеседование: соискатель наносит ответный удар
Ну если базовый тип содержать виртуальные функции, то наверно можно как то расковырять таблицу хотя не знаю, в ней ведь будут только виртуальные функции. Я так понимаю это не переносимо и уж точно не может считаться честным способом.
Можно ещё собственное определение класса написать, в котором зафрендить какой-нибудь свой другой класс желающий доступаться до приватных членов. И включать его вместо вместо оригинального определения. Только это нарушает ODR и тоже не может считаться честным способом.
Или если в оригинальном классе публичная шаблонная функция, то можно сделать специализацию.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет.
это наиболее простой способ выяснить реальный опыт человека в С/С++. Если опыт есть, то человек на большинство грабель так или иначе наступал.
Re[3]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, Паблик Морозов, Вы писали:
ПМ>>А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет.
OE>это наиболее простой способ выяснить реальный опыт человека в С/С++. Если опыт есть, то человек на большинство грабель так или иначе наступал.
Или накануне собеседования прочитал про них в книжке
Здравствуйте, Доктор ТуамОсес, Вы писали:
ПМ>>>А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет. OE>>это наиболее простой способ выяснить реальный опыт человека в С/С++. Если опыт есть, то человек на большинство грабель так или иначе наступал. ДТ>Или накануне собеседования прочитал про них в книжке
если бы все было так просто — прочитал в книжке и больше на эти грабли не наступаешь....
Re[5]: Собеседование: соискатель наносит ответный удар
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, Доктор ТуамОсес, Вы писали:
ПМ>>>>А мне вот что интересно — почему любое собеседование по С/С++ непременно сводится к граблям? У меня, как у стороннего наблюдателя, складывается впечатление, что кроме граблей в нём, собственно, ничего и нет. OE>>>это наиболее простой способ выяснить реальный опыт человека в С/С++. Если опыт есть, то человек на большинство грабель так или иначе наступал. ДТ>>Или накануне собеседования прочитал про них в книжке
OE>если бы все было так просто — прочитал в книжке и больше на эти грабли не наступаешь....