Ну если быть еще точнее, что method - это не member function, а virtual member function. Только удобней одно слово произнести вместо трех.Мальчик-Одуванчик wrote:Нет. В С++ правильно называеть это функция-член (member function). словоупотребление "метод" относится к обьектно-ориентированному программированию в целом а в плюсах считается ошибочным и даже "достойным порицания" (Dewhurst)Medium-rare wrote:A method is a function that belongs to a class. Not anymore?
Задачи на интервью
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Задачи на интервью
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Задачи на интервью
Это все буквоедство, вызванное кривым пониманием того, что когда-то сказал Страуструп. В cpp'ной группе давным-давно был флейм по этому поводу. Метод - синоним функции члена. Виртуальная функция член = виртуальный метод. Никакого основания разделять эти два понятия тут нет.Интеррапт wrote: Ну если быть еще точнее, что method - это не member function, а virtual member function. Только удобней одно слово произнести вместо трех.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачи на интервью
В терминологии С++ такого понятия как "метод" нет.Интеррапт wrote:Ну если быть еще точнее, что method - это не member function, а virtual member function. Только удобней одно слово произнести вместо трех.Мальчик-Одуванчик wrote:Нет. В С++ правильно называеть это функция-член (member function). словоупотребление "метод" относится к обьектно-ориентированному программированию в целом а в плюсах считается ошибочным и даже "достойным порицания" (Dewhurst)Medium-rare wrote:A method is a function that belongs to a class. Not anymore?
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Задачи на интервью
Да? А то, что их Страуструп называл методами, так он тоже языка не знал?Мальчик-Одуванчик wrote: В терминологии С++ такого понятия как "метод" нет.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачи на интервью
В стандарте языка достоточно четко определен термин "функция-член". Никакие синонимы к этому термину там не определены.dotcom wrote:Это все буквоедство, вызванное кривым пониманием того, что когда-то сказал Страуструп. В cpp'ной группе давным-давно был флейм по этому поводу. Метод - синоним функции члена. Виртуальная функция член = виртуальный метод. Никакого основания разделять эти два понятия тут нет.Интеррапт wrote: Ну если быть еще точнее, что method - это не member function, а virtual member function. Только удобней одно слово произнести вместо трех.
А поскольку стандарт дополнялся совсем недавно и не претерпел по этому поводу никаких изменений то лучше называть правильно.
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Задачи на интервью
Я понимаю, что из ста приветовцев примерно стосорокшесть с половиной вертели Вику на нефритовом стержне своих непокобелимых знаний, а особоодаренные - и вовсе сами эту Вику пишут потными ночами, но все же:
https://en.wikipedia.org/wiki/Method_(c ... ogramming)
даже про виртуальность нет ни слова, за исключением virtual methods
https://en.wikipedia.org/wiki/Method_(c ... ogramming)
даже про виртуальность нет ни слова, за исключением virtual methods
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Задачи на интервью
Кроме идеалистических соображений называть все добуквенно, как это указано в стандарте, у вас есть еще какие-то возражения против слова "метод" применительно к функции члену?Мальчик-Одуванчик wrote: В стандарте языка достоточно четко определен термин "функция-член". Никакие синонимы к этому термину там не определены.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачи на интервью
Ну ЕМУ такое невежество простительноdotcom wrote:Да? А то, что их Страуструп называл методами, так он тоже языка не знал?Мальчик-Одуванчик wrote: В терминологии С++ такого понятия как "метод" нет.
дословно он написал "виртуальную функцию-член иногда называют методом".
но со времен третьего издания этот термин стали использовать для любых функций-членов, что приводит к неоднозначности трактования.
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Задачи на интервью
Вокруг меня сотни профессионалов называют это методом класса, при том, очень сильно чаще, чем по другому. Уверенность, что это не галлюцинация, стремится к 100%. Тот, кто спорит с общепринятым, конечно, может принимать себя хоть за Страустрапа, но вероятность того, что мы не поверим, тоже стремится к 100%.Мальчик-Одуванчик wrote:Нет. В С++ правильно называеть это функция-член (member function). словоупотребление "метод" относится к обьектно-ориентированному программированию в целом а в плюсах считается ошибочным и даже "достойным порицания" (Dewhurst)Medium-rare wrote:A method is a function that belongs to a class. Not anymore?
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачи на интервью
хотя бы то, что стандартное определение однозначное, а приведенный слэнг уже нет.dotcom wrote:Кроме идеалистических соображений называть все добуквенно, как это указано в стандарте, у вас есть еще какие-то возражения против слова "метод" применительно к функции члену?Мальчик-Одуванчик wrote: В стандарте языка достоточно четко определен термин "функция-член". Никакие синонимы к этому термину там не определены.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачи на интервью
Процитируйте им совет номер 9.Medium-rare wrote:Вокруг меня сотни профессионалов называют это методом класса, при том, очень сильно чаще, чем по другому. Уверенность, что это не галлюцинация, стремится к 100%. Тот, кто спорит с общепринятым, конечно, может принимать себя хоть за Страустрапа, но вероятность того, что мы не поверим, тоже стремится к 100%.Мальчик-Одуванчик wrote:Нет. В С++ правильно называеть это функция-член (member function). словоупотребление "метод" относится к обьектно-ориентированному программированию в целом а в плюсах считается ошибочным и даже "достойным порицания" (Dewhurst)Medium-rare wrote:A method is a function that belongs to a class. Not anymore?
Меня тоже иногда передергивает, когда слышу "ложить".
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Задачи на интервью
Не по делу не буду ничего им советовать, на тупую борьбу с остроконечниками нет времени.
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачи на интервью
Зря, книжка неплохая. Написана как раз для профессионалов и посвящена систематизации типичных косяков.Medium-rare wrote:Не по делу не буду ничего им советовать, на тупую борьбу с остроконечниками нет времени.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Задачи на интервью
Я еще раз спрашиваю, где тут неоднозначности? В каком контексте в C++ метод может использоваться в ином значении, чем функция член?Мальчик-Одуванчик wrote: но со времен третьего издания этот термин стали использовать для любых функций-членов, что приводит к неоднозначности трактования.
Last edited by dotcom on 25 Apr 2013 16:10, edited 1 time in total.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачи на интервью
1. Неужели сами не заметили?dotcom wrote:Я еще раз спрашиваю, где тут неоднозначности? В каком контексте в C++ метод может использоваться в ином контексте, чем функция член?Мальчик-Одуванчик wrote: но со времен третьего издания этот термин стали использовать для любых функций-членов, что приводит к неоднозначности трактования.
Интеррапт (и Страуструп вместе с ним) говорят о методах применительно исключительно к виртуальным функциям-членам.
Вы, Poryadok и Mediun-rare относите к методам любые функции-члены. Не находите что это несколько разные определения?
2. "template method" - использование термина "метод" совершенно в другом контексте и не имеющий ничего общего с "template member function".
-
- Уже с Приветом
- Posts: 2924
- Joined: 01 Apr 2004 04:22
Re: Задачи на интервью
Мальчик-Одуванчик, с такой attitude Вы интервью завалите. Если интервюер использует непривычную/незнакомую терминологию, Ваша (на интервью) задача - разобраться, как его терминология соотносится с Вашей и при етом его ненарoком не обидетьМальчик-Одуванчик wrote:В терминологии С++ такого понятия как "метод" нет.Интеррапт wrote:Ну если быть еще точнее, что method - это не member function, а virtual member function. Только удобней одно слово произнести вместо трех.Мальчик-Одуванчик wrote:Нет. В С++ правильно называеть это функция-член (member function). словоупотребление "метод" относится к обьектно-ориентированному программированию в целом а в плюсах считается ошибочным и даже "достойным порицания" (Dewhurst)Medium-rare wrote:A method is a function that belongs to a class. Not anymore?
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
-
- Уже с Приветом
- Posts: 4205
- Joined: 10 Jan 2004 01:22
- Location: n-sk -> MD -> VA
Re: Задачи на интервью
как бы завалить интервью может не только претендент, чай не 2001й год.
-
- Уже с Приветом
- Posts: 1383
- Joined: 17 Jan 2005 22:33
- Location: Minsk, Belarus - Beaverton, OR
Re: Задачи на интервью
Про BSTR я вообще-то спросил чем он отличается от char*.Medium-rare wrote:Это был правильный вопрос, насколько товарищ в самом деле представляет собственно программирование на языке.Poryadok wrote:Я попросил написать сигнатуру метода, который будет по коду ошибки возвращать severity и text descriptionА это вопрос на память. Principal или не principal может помнить, а может и нет. Ну я бы поприкалывался, BSTR или bstr_t? Нехороший вопрос. Он вам пытался рассказать про ref count, отлично, можно было послушать версию. Ещё лучше задать вопрос, что он знает об этом, вместо конкретных COM/ATL типов. Кстати, MS до вопросов такого рода на интервью не опускается. Ask me how I know. Понимание тут ни при чём.Тут у меня спрашивали какие еще вопросы
ну, про bstr. Мне тут один кразавчег индус обьяснял, что ему не надо память освобождать, у него refcountЭто опять слишком для ремесленника вопросы. Тогда неплохо бы сначала поговорить о принципиальном понимании, что есть UI thread, и знает ли товарищ детали имплементации? Ну а если клеймит, что знает, как оно там в wpf, для примера?Еще люблю спрашивать можно ли из ивента, пойманого дотнетом у com-а рисовать в ui, и если нет,то что делать в winforms и wpf. Индус, например, уверял меня, что без проблем.
Я ожидал ответа, что во-первых, BSTR - это всегда unicode, а во-вторых, он содержит длину. Получил ответ, что BSTR сам освобождает себе память. Если бы мужик не говорил 90% времени интервью о чём его не спрашивают, а останавливался сам хотя бы через 10 минут после заданого вопроса и давал слово вставить, я бы у него ещё спросил - как, мол, так - если функция возвращает BSTR, то когда же оно выходит из области видимости - может он бы и сообразил. Но когда мужика удалось остановить, у нас уже более интересные вопросы возникли.
Я такого человека взять не могу. Он мне memory leak-ов наделает.
Я на интервью не требую помнить каждую букву. Я требую как раз понимания. Но и общее представление предмета должно быть, или не указывай его в резюме. Например, если указал clearcase, то либо знай, что такое version tree, либо не претендуй больше чем на junior position, а то principal engineer, который никогда не задавался вопросом, кто внёс изменение и почему, меня сильно настораживает.
А ещё у и у меня, и соседних групп любимый вопрос на интервью - расскажи чем занимался на прошлой работе, и нарисуй диаграму. (к нам приходят люди, который работали с железом, и у нас работа - с железом). Диаграма обычно - железо - firmware - бизнес-логика - UI, и стрелочки между ними.
Если человек не может нарисовать диаграму - не берём принципиально. К сожалению, таких - много. Рисуйте диаграмы красиво и чётко, чем чётче диаграма - тем лучше. Желательно знать, что работает в одном процессе, а что - в разных, и как маршаллится через границу процесса. Тех, кто знает, через что у них маршаллилось - берём (например, тётка знала, что у них использовались named pipes и могла нарисовать диаграму - взяли и, похоже, не прогадали). Principal Engineers с десятками лет работы, у которых всегда-всегда всё было исключительно в одном процессе - не берём, потому что стрёмно.
Отлипай давай от форума и марш работать!
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Задачи на интервью
Ну так, в лоб и был задан вопрос, что есть BSTR? М... изучить проблемы не составляет, хотя уже и вполне официально просят не пользоваться этим типом, лет 10, не меньше. Очень давно не использовал, по моему, нерекомендвано больше. А вообще да, товарищ "забыл, потому что не знал". Тогда "до свидания"... В ответ на такой вопрос неплохо ответить честно "знаю" и рассказать, "не знаю" и сказать, что много разных строковых типов знаю помимо того. Сам по себе такой вопрос лучше не задавать.Poryadok wrote: Про BSTR я вообще-то спросил чем он отличается от char*.
Я ожидал ответа, что во-первых, BSTR - это всегда unicode, а во-вторых, он содержит длину. Получил ответ, что BSTR сам освобождает себе память.
Так эта... Запрещаете пользоваться голым BSTR, только _bstr_t и никогда не детачить от него системный BSTR, код-ревью обязательно.Я такого человека взять не могу. Он мне memory leak-ов наделает.
Ну не стыдно программеру не знать BSTR. Научиться его использованию не сложно. Для понимания, раз не знает BSTR, можно было повентилировать, как он себе представляет обращение со строковым типом, прередаваемым между процессами:Я на интервью не требую помнить каждую букву. Я требую как раз понимания.
struct BSTR
{
uint32_t count;
wchar_t* pstr;
};
Вот какой бы API для того придумал?
ClearCase самый ужасный version control ever. Никогда не укажу. Но на враньё указавших фильтровать, может, так и надо.Например, если указал clearcase, то либо знай, что такое version tree, либо не претендуй больше чем на junior position, а то principal engineer, который никогда не задавался вопросом, кто внёс изменение и почему, меня сильно настораживает.
Ну это понятно, раз надо interprocess communications такие. Лично мне всегда это было интересно, как оно работает. Недавно лепил некий automation, вспомнил Named Pipe. Но почему обязательно IPC? Это даже вовсе не обычное решение для работы с оборудованием. Слушать/ говорить в порт оборудования прямо в процессе куда чаще распространено.А ещё у и у меня, и соседних групп любимый вопрос на интервью - расскажи чем занимался на прошлой работе, и нарисуй диаграму. (к нам приходят люди, который работали с железом, и у нас работа - с железом). Диаграма обычно - железо - firmware - бизнес-логика - UI, и стрелочки между ними.
Если человек не может нарисовать диаграму - не берём принципиально. К сожалению, таких - много. Рисуйте диаграмы красиво и чётко, чем чётче диаграма - тем лучше. Желательно знать, что работает в одном процессе, а что - в разных, и как маршаллится через границу процесса. Тех, кто знает, через что у них маршаллилось - берём (например, тётка знала, что у них использовались named pipes и могла нарисовать диаграму - взяли и, похоже, не прогадали). Principal Engineers с десятками лет работы, у которых всегда-всегда всё было исключительно в одном процессе - не берём, потому что стрёмно.
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 1686
- Joined: 11 Mar 2005 00:31
- Location: ПЗ
Re: Задачи на интервью
возражу по двум пунктам:
1. это неверно
1. это неверно
2. не быть знакомым с этой макрософтовской рацухой - ну совершенно не стыдноCode: Select all
struct BSTR { uint32_t count; wchar_t* pstr; };
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Задачи на интервью
В огороде бузина, а в Киеве - дядька. А char*, что, не может быть unicode?Poryadok wrote: Про BSTR я вообще-то спросил чем он отличается от char*.
Я ожидал ответа, что во-первых, BSTR - это всегда unicode
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Задачи на интервью
Про "unicode" уже написал - это какая-то ваша собственная интерпретация, про длину - верно, но самое главное вы забили - про аллокаторы.Poryadok wrote:Я ожидал ответа, что во-первых, BSTR - это всегда unicode, а во-вторых, он содержит длину.
Но вообще это казуистика, такую херню на собеседовании спрашивать.
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Задачи на интервью
Это был пример, а не иллюстрация, что там на самом деле. Мы видим OLECHAR*. Корректнее было бы строку прямо в структуре размещать (? наверное), но опять таки, просто на интервью спросить, как товарисч представляет себе интерфейс для работы с такой кракозяброй, тут девелопер себя и покажет.Andy Wooden wrote:возражу по двум пунктам:
1. это неверно
A BSTR is a composite data type that consists of a length prefix, a data string, and a terminator. The following table describes these components.
Item Description
Length prefix A four-byte integer that contains the number of bytes in the following data string. It appears immediately before the first character of the data string. This value does not include the terminating null character.
Data string A string of Unicode characters. May contain multiple embedded null characters.
Terminator Two null characters.
A BSTR is a pointer. The pointer points to the first character of the data string, not to the length prefix.
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Задачи на интервью
А как теперь правильно строки передавать в COM, если без BSTR? Я, к счастью, с COM'ами давно не работаю.
-
- Уже с Приветом
- Posts: 3836
- Joined: 13 Sep 2007 10:06
Re: Задачи на интервью
КОМ зло, ОЛЕ зло. Виндовс тоже зло.