Re[4]: Я в шоке.
От: shrecher  
Дата: 03.05.10 18:06
Оценка:
Здравствуйте, Handie, Вы писали:

S>>Виртуальный деструктор — затасканный вопрос. Cтыдно не знать ответ для C++ программиста, если чел его не знает, то он о C++ и не слышал.


S>>С другой стороны, задавать этот вопрос на интревью тоже не этично: такие кандидаты отсеиваются на этапе домашней работы.


H>Стыдно давать домашнюю работу должно быть.


Ты хочешь сказать, что не надо давать домашнюю работу? Тогда на собеседования будут ходить очень странные личности получившие свои CV путем клонирования существующих. Так как они отнимают время, то повышают шанс не взять достойного кандидата.

Домашняя работа отсеивает где-то 50% подавших на позицию.
Re[5]: Я в шоке.
От: NikeByNike Россия  
Дата: 03.05.10 18:52
Оценка: +1
Здравствуйте, shrecher, Вы писали:

S>Домашняя работа отсеивает где-то 50% подавших на позицию.


Не исключено что и реальных профессионалов
Нужно разобрать угил.
Re[6]: Я в шоке.
От: shrecher  
Дата: 03.05.10 18:56
Оценка: -3
Здравствуйте, NikeByNike, Вы писали:

NBN>Здравствуйте, shrecher, Вы писали:


S>>Домашняя работа отсеивает где-то 50% подавших на позицию.


NBN>Не исключено что и реальных профессионалов


Задача интревью не взять ненужного.
Re[2]: Я в шоке.
От: uhh  
Дата: 04.05.10 10:11
Оценка:
Здравствуйте, msk78, Вы писали:

M>А у нас на собеседованиях до сих пор (как это не пародоксально) предполагается, что программист сидит один. Как в лесу.


круче! у нас предполагается, что он сидит один, в лесу, и без документации/интернета.
Re[3]: Я в шоке.
От: Nik_1 Россия  
Дата: 04.05.10 11:07
Оценка:
Здравствуйте, uhh, Вы писали:

uhh>Здравствуйте, msk78, Вы писали:


M>>А у нас на собеседованиях до сих пор (как это не пародоксально) предполагается, что программист сидит один. Как в лесу.


uhh>круче! у нас предполагается, что он сидит один, в лесу, и без документации/интернета.

Вау! Офис в лесу — да это прям работа мечты
Re[3]: Я в шоке.
От: rsdntchkru  
Дата: 08.05.10 12:56
Оценка:
S>С другой стороны, задавать этот вопрос на интревью тоже не этично: такие кандидаты отсеиваются на этапе домашней работы.

домашняя работа это грех. стрелять таких работодатeлей. он типа этим экономит врeмя hr и технарeй (30 мин), а о чeловeкe кот.дoлжен вылизать дoм заданиe и потратить на это день, он ссуко не думает. Может у него, соискателя, таких вариантов и подготовок к интервью еще штук 5, что ему неделю сидеть, код строчить для каждого задармо? А где вероятность что это его код?
Re: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
От: rsdntchkru  
Дата: 08.05.10 13:06
Оценка:
Здравствуйте, Denwer, Вы писали:

D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?


Ну коль уж вы тут столько расписали в ответах к этому топику и причем все 50/50 -> надо знать/нахрена надо, ..вот у меня вопросы к спецам тогда и к навороченым собеседователям:
допустим определили что с виртуальным деструктором жить хорошо. Ну дык тогда при любом новом классо-написании тупо ставим каждый деструктор виртуальным.
1) Зачем тов.Страуструп завел эту тему отдельно (нет виртуального автоматически)?
2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку?
3) Если в определенном классе нет разницы если деструктор виртуальный или нет, то чем плохо определение деструктора виртуальным? (скорость, ресурсы?)
Re[2]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
От: MxMsk Португалия  
Дата: 08.05.10 14:05
Оценка:
Здравствуйте, rsdntchkru, Вы писали:

R>1) Зачем тов.Страуструп завел эту тему отдельно (нет виртуального автоматически)?

R>2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку?
R>3) Если в определенном классе нет разницы если деструктор виртуальный или нет, то чем плохо определение деструктора виртуальным? (скорость, ресурсы?)
Не могу не присоединиться к вопросам. И правда, почему бы не возложить на компилятор определение необходимости виртуализовать деструктор и автоматически добавить вызовы базового в унаследованные классы (хотя последнее может и делается, все-таки на C++ не пишу)? Пока что ничего, кроме экономии скорости вызова деструктора в голову не приходит.
Re[2]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
От: dilmah США  
Дата: 08.05.10 14:31
Оценка: 10 (1)
R>2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку?

нигде. За исключением того, что если класс изначально был неполиморфным (в нем не было виртуальных функций, он не наследовался виртуально или от полиморфных классов), то добавление виртуального деструктора делает его полиморфным. А полиморфные классы нельзя использовать в некоторых контекстах, скажем, включить такой класс в union.

R>3) Если в определенном классе нет разницы если деструктор виртуальный или нет, то чем плохо определение деструктора виртуальным? (скорость, ресурсы?)


некоторые люди просто этим не заморачиваются, потому что они используют классы как такую форму модульности, и они не используют их полиморфно -- это вовсе не везде нужно.

В остальных случаях -- да, скорость, ресурсы -- невиртуальный метод часто инлайнится и может быть абсолютно бесплатным. Виртуальный метод всегда платен. В зависимости от конкретного кода, это может быть неважно, а может давать десятки процентов оверхеда.
Re[3]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
От: dilmah США  
Дата: 08.05.10 14:31
Оценка:
MM>автоматически добавить вызовы базового в унаследованные классы (хотя последнее может и делается, все-таки на C++ не пишу)?

да, делается
Re[4]: Я в шоке.
От: AndrewJD США  
Дата: 10.05.10 14:57
Оценка:
Здравствуйте, rsdntchkru, Вы писали:

R>домашняя работа это грех. стрелять таких работодатeлей. он типа этим экономит врeмя hr и технарeй (30 мин), а о чeловeкe кот.дoлжен вылизать дoм заданиe и потратить на это день, он ссуко не думает. Может у него, соискателя, таких вариантов и подготовок к интервью еще штук 5, что ему неделю сидеть, код строчить для каждого задармо?

Аналогично, работодателю нужно в день еще 5 штук интервью провести.

R>А где вероятность что это его код?

О коде можно будет на интервью поговорить
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[2]: Я в шоке.
От: Head Ache  
Дата: 11.05.10 02:13
Оценка:
Здравствуйте, sss1024, Вы писали:

S>Здравствуйте, Denwer, Вы писали:


D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?


S>90% кода на С++ написано теми кто понятия не имеет что такое виртуальный деструктор.


S>C++ устарел, что такое виртуальный деструктор мало кто интересовался раньше а теперь уж и подавно.



Такие пионерские заявления постоянно слышу от некоторых дилетантов.
Которым потом надо объяснять, например, как пользоваться виртуальными функциями.
Ну, захотел человек первый раз ее использовать, написав до этого за много лет N мегабайт *овнокода.
Или чем NULL в базе отличается нуля.
Хотя о чем я. Просто достали!!!
От невежества и тупости не спасет самый современный, самый совершенный, самый супер-пупер язык.
Если проблемы с логикой на уровне ДНК и нет желания эволюционировать — значит в дворники.
Или хотя бы веб-странички раскрашивать.

Зы. Mobile еще тот покойничек... прямо скажем мертворожденный.
Хотя бы чем объяснить тот факт, что для программирования игр C++ был и есть до сих пор самой востребованной платформой.
Не веришь — почитай в на этом же сайте в других форумах,
тема платформы постоянно обсуждается.
Этот аккаунт покинут.
Re[5]: Я в шоке.
От: Head Ache  
Дата: 11.05.10 02:31
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, _nikita_, Вы писали:

J>>>... на работе надо делать дело, а не заниматься самообразованием.
__>>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот
LVV>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний...
LVV>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...

а еще в Раше бывают безграмотные начальники. Жесть...
Этот аккаунт покинут.
Re[6]: Я в шоке.
От: LaptevVV Россия  
Дата: 11.05.10 02:43
Оценка:
Здравствуйте, Head Ache, Вы писали:

HA>Здравствуйте, LaptevVV, Вы писали:


LVV>>Здравствуйте, _nikita_, Вы писали:

J>>>>... на работе надо делать дело, а не заниматься самообразованием.
__>>>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот
LVV>>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний...
LVV>>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...

HA>а еще в Раше бывают безграмотные начальники. Жесть...

Да этого добра не только у нас хватает...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: Я в шоке.
От: Head Ache  
Дата: 11.05.10 03:08
Оценка:
Здравствуйте, egaron, Вы писали:

E>ценность и незаменимость специалиста заключается гораздо больше в том, какими он связями оброс в процессе работы, как понимает суть проекта, — и таких людей держат и молятся на них и платят большие бабки , хотя на моей памяти именно они зачастую были виновниками нулл-референсов. ну а что, референсы и кодер подчистит, и нанять человека, который умеет кодить на определенной технологии — это задача тривиальная,в отличии от задачи удержать от увольнения эксперта в части бизнес-логики проекта с наработанными связями с заказчиками.


Страшно. Совок в чистом виде.
5 человек пишут код, чтобы Великая Марья Ивановна 3 раза нажала на ту кнопку...
Сам-то сильно оброс связями с MS или с Google?
А их услугами регулярно пользуешься.
С другой стороны, им нах не нужно с тобой "связями обрастать" для этого.

"а что, референсы и кодер подчистит..." — палишься, даже просто написать большими буквами "я 2 по 5" И ТО БЫЛО БЫ МЕНЕЕ ВЫРАЗИТЕЛЬНО.
На моей практике — чтобы их "подчистить" — вообще переписать полностью весь код потребовалось.
Разбираться в ветвях на 1000 строк вообще нереально, оказалось, кода требовалось примерно раз в 5 меньше.
Этот аккаунт покинут.
Re: Я в шоке.
От: akov12  
Дата: 12.05.10 00:24
Оценка:
Здравствуйте, Denwer, Вы писали:

D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?


Я не С++ программер, но если немного поразмыслить, то получается:
деструктор — значит, нечто, что отвечает за уничтожение объекта
виртуальный — значит, скорее всего, объявленный в абстрактном классе и предназначенный для реализации (если нужно) в конкретном классе (полиморфный метод).

Получается, виртуальный деструктор — метод, объявленный в абстрактном (супер)классе, который может быть реализован в конкретном классе, и отвечает за уничтожение конкретного типа объектов.

В Perl-e это sub DESTROY {}
Re[2]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
От: Панда Россия  
Дата: 12.05.10 09:37
Оценка:
Здравствуйте, rsdntchkru, Вы писали:

R>2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку?


class A 
{
public:
   int x; 
   float y;
   char s[80];
   A(int x, float y, char *ss): x(x), y(y) { strcpy(s, ss); };
   ~A() {}
   void ClearValues(void)     { ZeroMemory(this, sizeof(*this); }
   void WriteToFile (FILE *f) { fwrite(this, sizeof(*this), 1, f); }
   void ReadFromFile(FILE *f) { fread (this, sizeof(*this), 1, f); }
}


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

Пока деструктор не виртуальный, все будет работать, сделаете виртуальным — начнет крашиться.
Re[3]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
От: Eugeny__ Украина  
Дата: 12.05.10 10:52
Оценка: :)
Здравствуйте, Панда, Вы писали:


П>[сcode]

П>class A
П>{
П>public:
П> int x;
П> float y;
П> char s[80];
П> A(int x, float y, char *ss): x(x), y(y) { strcpy(s, ss); };
П> ~A() {}
П> void ClearValues(void) { ZeroMemory(this, sizeof(*this); }
П> void WriteToFile (FILE *f) { fwrite(this, sizeof(*this), 1, f); }
П> void ReadFromFile(FILE *f) { fread (this, sizeof(*this), 1, f); }
П>}
П>[/сcode]

Жестячек.

[troll mode on]
Чем только не приходится заниматься сишникам в отсутствие нормальной сериализации
[troll mode off]
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.