Здравствуйте, FDSC, Вы писали:
FDS>Здравствуйте, pavel_turbin, Вы писали:
_>>может ли существовать такой тип ABC, вообще? Если программист "с лету" говорит "Да, проблем нет."
FDS>А если он ответит, что это невозможно? Что вы будете делать?
попрошу обосновать "почему", если он ответит "ссылка всегда должна быть инициализированная", можно спросить что нужно исправить в типе "struct ABC", чтобы сделать его возможным. Если не может ответить, спросить про роль конструктора. Далее, в свете только что изложенных сведений про конструкторы, можно вернуться к вопросу.
Можно еще спросить, где такая конструкция "struct ABC" может быть нужна, пример из жизни. (ответ объекты синхронизации)
PS.
Вообще, человек, который говорит, что ссылки не нужны, т.к. их можно заменить указателями -- это скорее "C", а не C++ программист, после этого можно решать "Мы ищем C++ или C программиста"
.
Здравствуйте, maximm__, Вы писали:
__>программисты на C++!!! те, кто реально пишут код, любят boost, но не боготворят, начинают проект с автосборки, где Вы?!
Человек не знающий основных паттернов, смартпоинтеров и интрузивных контейнеров не может считаться опытным программистом, а значит у него недостаток опыта. Почему я так считаю — потому что — программист — человек ленивый, а использование таких вещей — очень облегчает жизнь, а значит — опыт есть =) Дальше встает вопрос — либо брать и учить (либо методом грабли, либо методом сенсей), постоянно отвлекаясь, либо искать опытных людей... Вопрос решается просто — что вы можите себе позволить =)
Здравствуйте, FDSC, Вы писали:
FDS>Здравствуйте, puremind, Вы писали:
P>>А можно еще структурные паттерны проектирования вспомнить ...
FDS>Ну... мне нечего вспоминать на этот счёт — не знаю я этого
FDS>Можно ссылочку (на открытый проект) на пример реального кода, где используются ссылки как поля объектов.
Элементарно.
class Mutex
{
public:
Mutex() { /* make mutex here */ }
~Mutex() { /* destroy mutex here */ }
void lock();
void unlock();
};
class CriticalSection
{
public:
void lock();
void unlock();
};
template<class Synch>
class ScopedLocker
{
Synch &m_synch;
public:
ScopedLocker(Synch &synch): m_synch(synch)
{
m_synch.lock();
}
~ScopedLocker()
{
m_synch.unlock();
}
};
typedef ScopedLocker<Mutex> MutextScopedLocker;
Здравствуйте, DKM_MSFT, Вы писали:
S>>Причем один человек был с шестилетним опытом, работал в крупной компании. Про ссылки не знал ничего. Это ж блин каким любознательным человеком надо быть, чтоб за 6 лет, да...
DKM>Наверное, этот случай должен был убедить вас в том, что вы спрашиваете какую-то ерунду, да?
Нет, этот случай убедил меня в том, что резюме верить нельзя. Если бы мы искали С программиста, мы бы того человека взяли. Но нам был нужен человек со знанием С++, и никакого желания кого-то переучивать у меня не было. А в плюсах он вообще плавал — не только в ссылках.
DKM>Вообще ваш вопрос — один из самых глупых вопросов для собеседования, которые я когда-либо слышал.
Ок, просветите меня, о чем на собеседовании надо спрашивать? Про крышки от люков?
DKM>Мало того, что вы спрашиваете об одной из наименее полезных особенностей конкретного языка, которую в 100% случаев можно заменить другой конструкцией без какого-либо ущерба для производительности и читаемости кода.
А умение понимать чужой код у нас теперь типа не котируется? Если в программе этих ссылок как грязи, а человек не понимает ни списков инициализации, ни ссылок — как он будет в ней разбираться?
DKM>Так, ко всему этому, исчерпывающую информацию об этой особенности можно получить из MSDN в течение одной минуты.
Угу, а исчерпывающую информацию почти о всех английских словах можно получить в словаре в течение одной минуты. Только наличие под рукой словаря переводчиком вас не сделает.
DKM>Давайте, я вас сейчас спрошу о том, как в функции SetSecurityDescriptorDacl указать, что передаваемый DACL был в явном виде указан пользователем. А может быть, вы даже не знаете, что такое DACL? Это ж, блин, каким любознательным человеком надо быть, чтоб за сколько там у вас лет опыта программирования под Windows, да...
Как ни странно, что такое DACL я знаю.
DKM>Причем, обратите внимание, неспособность ответить как на мой вопрос, так и ваш, свидетельствует лишь о том, что человек не использовал некоторую конструкцию в силу того, что она ему была не нужна.
Видел я код, который такие люди пишут. Говнище типа MFC или ATL'я из VC6. if (error) goto cleanup, ага.
DKM>Ответы на оба вопроса находятся в течение минуты в документации.
Для этого хотя бы нужно знать, что именно искать.
DKM>Однако вы, в отличие от меня, спросили про вещь, использования которой можно избежать всегда. Так если вы считаете мой вопрос глупым, то как вы охарактеризуете ваш?
Разумеется, свой вопрос я считаю крайне простым, на такой вопрос должен легко ответить любой знающий С++ человек.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Читаю эту ветку находясь в отпуске на море... И знаете, такое чуство возникает, что возня какая то у вас там в Москве нездоровая
Не то что бы я там че то, просто я к тому что оторвите взгляд от компа, типа повертите в разные стороны и все такое...
А вы опять за свои копи-конструкторы, констатные методы и прочее ...
_>попрошу обосновать "почему", если он ответит "ссылка всегда должна быть инициализированная", можно спросить что нужно исправить в типе "struct ABC", чтобы сделать его возможным
Я бы просто сказал, что объявление рабочее и посмотрел, как будет выкручиваться. Но, в общем, правильно, согласен. Этот пример вполне допустим
_>PS. _>Вообще, человек, который говорит, что ссылки не нужны, т.к. их можно заменить указателями -- это скорее "C", а не C++ программист, после этого можно решать "Мы ищем C++ или C программиста"
Лично моё мнение: собственно, а чем ссылки лучше константных указателей? Я тут где-то показывал эквивалентный код на указателях, заменяющий ссылку. Чем вам указатели не нравятся? Для тех же объектов синхронизации ведь совершенно без разницы, будете вы туда ссылку передавать или запоминать адрес в константный указатель.
sc>>В общем RAII. Не нужно закрывать соединение, оно само закроется.
D>Причём ещё до начала работы с ним.
Это точно Спешил. Но надеюсь все поняли, что я имел ввиду
Здравствуйте, pavel_turbin, Вы писали:
FDS>>Можно ссылочку (на открытый проект) на пример реального кода, где используются ссылки как поля объектов.
_>Элементарно.
Здравствуйте, Sergey, Вы писали:
S>А умение понимать чужой код у нас теперь типа не котируется? Если в программе этих ссылок как грязи, а человек не понимает ни списков инициализации, ни ссылок — как он будет в ней разбираться?
А вы его ему кода не давали, вы просили его написать. Разница принципиальная, согласитесь
Сергей — я Вас поддерживаю, а знаете что происходит — дальше будет хуже.
Мы те, кому 26-35 — подростковый период провели тогда, когда компьютер — был вещью из мечт, когда приходилось работать и выкручиваться из тех условий, что были когда-то, и паять свой первый Спектрум, изобретать при программировании и главное думать... Была Романтика и самостоятельное желание искать материал, которого было крайней мало — когда книжку передавали из рук в руки... А сейчас всякого хлама написано столько, что стоящие вещи в них теряются... А юниоры тонут в этом объеме хлама... и как следствие — знания хлама есть, знания основ и понимание их — нет...
Сейчас компьютер для большенства — это обыденная вещь и по этому разбираться в нем ни у кого нет желания — все на уровне Домохозяйки — дяде Биллу с его лозунгом о домохозяйке сказать можно спасибо. Остались нормальные разве что Unix/Linux программисты, но их мало... Никогда не думал, что лучшим для Windows системным программистом станет UNIX/Linux программист =)
Здравствуйте, sc, Вы писали:
D>>Причём ещё до начала работы с ним. sc>Это точно Спешил. Но надеюсь все поняли, что я имел ввиду
Вот, видите какой вред от ссылок?
А если представить себе ещё одно неправильное использование такой структуры блокировки: она незаметно для программиста (ну спешил человек или устал просто и не заметил) попадает во вложенные операторные скобки, а на самом деле должна блокировать всю функцию. Вот вам ещё одна ошибка, которую надо искать.... Правда тогда нужно делать функцию, а потом её обернуть ещё одной с синхронизацией чтобы точно никаких ошибок не было.... а это в C++ будет уже не удобно, скорее всего
Здравствуйте, superman, Вы писали:
S>В прошлом я неоднократно использовал такое в своей работе, соглашусь что это было не самым элегантным, но удовлетворительным и единственным доступным мне тогда решением.
А чем в том случае указатели не подходили?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, superman, Вы писали:
S>мы тут на днях встретили в одной библиотеке такой перл:
такое ощущение, что тот кто это писал не подозревал о существовании указателей.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, pavel_turbin, Вы писали:
_>Вообще, человек, который говорит, что ссылки не нужны, т.к. их можно заменить указателями -- это скорее "C", а не C++ программист
ИМХО каждый инструмент к своему месту. Тут в большей части примеров ссылки притянуты за уши. Указатель там подошел бы больше.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
FFF>Мы те, кому 26-35 — подростковый период провели тогда, когда компьютер — был вещью из мечт, когда приходилось работать и выкручиваться из тех условий, что были когда-то, и паять свой первый Спектрум, изобретать при программировании и главное думать... Была Романтика и самостоятельное желание искать материал, которого было крайней мало — когда книжку передавали из рук в руки... А сейчас всякого хлама написано столько, что стоящие вещи в них теряются... А юниоры тонут в этом объеме хлама... и как следствие — знания хлама есть, знания основ и понимание их — нет...
Что-то мне это очень напоминает... из юмора
А что вы считаете пониманием?
P.S. Вы знаете, у меня тоже не было компьютера и учился программировать я сначала по книгам, а затем уже (через несколько лет) мне его подарили...
так что и в наши дни компьтер — это романтика. Только вот что-то мне не хочется тратить свою жизнь на изучение того, что мне абсолютно не нужно и легко можно заменить другой вещью из этого же языка. По моему, как раз речь идёт о хламе.
Да и языков и библиотек столько, что непонятно, что учить и насколько глубоко