Айтишники на пенсии

Moderator: sss1

User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Айтишники на пенсии

Post by АццкоМото »

ksi wrote: 18 May 2017 18:39
АццкоМото wrote: 18 May 2017 18:13 Очередной вывих мозга от нашего "шпешалиста" - завести никому не нужный указатель пораньше, держать его нулем без всякой цели три часа до реального создания инстанса, чтобы потом случайно все-таки использовать, проанализировать крэшлог и порадоваться, какой умный, что быстро нашел проблему

Не читайте советские газеты и ksi, просто ради чистоты сознания
Что, снова оно, пипиc .. :D ?

А по делу? Объект может реально наполняться содержанием (что сплошь и рядом в вычислительных задачах) в глубинах многочисленных if и while. А может так получиться, что код туда не зайдет, а вы думали что зайдет. Там создать вы его не можете из-за скопа. Когда будем создавать объект?
Не утруждайтесь ответами. Я устал с вами спорить. Это так же безнадежно, как пытаться выдавить из ммодел связанную мысль.

ЗЫ. А за "оно" буду жамкать морковку, хамло необразованное
Мат на форуме запрещен, блдж!
ksi
Уже с Приветом
Posts: 10066
Joined: 20 May 1999 09:01

Re: Айтишники на пенсии

Post by ksi »

partner_ca wrote: 18 May 2017 18:43 Тогда, когда он нужен.
Нужен он будет позднее, во многих местах данной функции. Логическое место, где у вас есть доступ к данных, которые позволяют его наполнить содержанием, находиться в другом месте функции, под всякими if. Как и где создавать объект?
ksi
Уже с Приветом
Posts: 10066
Joined: 20 May 1999 09:01

Re: Айтишники на пенсии

Post by ksi »

АццкоМото wrote: 18 May 2017 18:47
ksi wrote: 18 May 2017 18:39
АццкоМото wrote: 18 May 2017 18:13 Очередной вывих мозга от нашего "шпешалиста" - завести никому не нужный указатель пораньше, держать его нулем без всякой цели три часа до реального создания инстанса, чтобы потом случайно все-таки использовать, проанализировать крэшлог и порадоваться, какой умный, что быстро нашел проблему

Не читайте советские газеты и ksi, просто ради чистоты сознания
Что, снова оно, пипиc .. :D ?

А по делу? Объект может реально наполняться содержанием (что сплошь и рядом в вычислительных задачах) в глубинах многочисленных if и while. А может так получиться, что код туда не зайдет, а вы думали что зайдет. Там создать вы его не можете из-за скопа. Когда будем создавать объект?
Не утруждайтесь ответами. Я устал с вами спорить. Это так же безнадежно, как пытаться выдавить из ммодел связанную мысль.

ЗЫ. А за "оно" буду жамкать морковку, хамло необразованное
А разве не вы первый предложили меряться вот ими самыми :D ? Это не ваше :D
И таки давайте вы достанете свой и мы приложим к нему пипкомерку. Я уже сказал, с моим Си-шным кодом в мире были проданы сотни миллионов дивайсов, скорее ближе к миллиарду. И они работают. Предьявите свои достижения, прежде чем развивать свои инсинуации про мой "простейший уровень"
Я наоборот все время пытался перевесит разговор в деловое русло обсуждение конкретных вопросов, но вы решили идти ва-банк и применить "пипкомерку"! Видит бог, это не моя вина :D ! Помогите CK, я поставил вполне нормальный вопрос, неужели у вас такого не было в вашей практике?
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Айтишники на пенсии

Post by АццкоМото »

ksi wrote: 18 May 2017 19:03 А разве не вы первый предложили меряться вот ими самыми :D ? Это не ваше :D
Ok, если вы не понимаете, почему предложить померяться письками не есть оскорбление, а вот назвать собеседника "оно" - очень даже, то вам доходчиво объяснит модератор. Всего вам недоброго
Мат на форуме запрещен, блдж!
ksi
Уже с Приветом
Posts: 10066
Joined: 20 May 1999 09:01

Re: Айтишники на пенсии

Post by ksi »

partner_ca wrote: 18 May 2017 18:59
ksi wrote: 18 May 2017 18:50 Нужен он будет позднее, во многих местах данной функции. Логическое место, где у вас есть доступ к данных, которые позволяют его наполнить содержанием, находиться в другом месте функции, под всякими if. Как и где создавать объект?
"Всякие if" можно (и надо) поместить в конструктор.
Ну это никак невозможно. Эти if грубо говоря статусы которые возвращают абсолютно посторонние функции, которые работают с совершенно другими данными и другими классами.
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Айтишники на пенсии

Post by АццкоМото »

partner_ca wrote: 18 May 2017 18:59
ksi wrote: 18 May 2017 18:50 Нужен он будет позднее, во многих местах данной функции. Логическое место, где у вас есть доступ к данных, которые позволяют его наполнить содержанием, находиться в другом месте функции, под всякими if. Как и где создавать объект?
"Всякие if" можно (и надо) поместить в конструктор.
На самом деле вовсе не обязательно. Отложенная инициализация - вполне нормальное дело, когда есть на то причины. В конструкторе можно инициализировать то, что критично и быстро, а в каком-нибудь init() - то, что делается долго и нудно. Другой вопрос, что если init() - не метод класса, то почти всегда это терминальный рак мозга
Мат на форуме запрещен, блдж!
ksi
Уже с Приветом
Posts: 10066
Joined: 20 May 1999 09:01

Re: Айтишники на пенсии

Post by ksi »

АццкоМото wrote: 18 May 2017 19:05
ksi wrote: 18 May 2017 19:03 А разве не вы первый предложили меряться вот ими самыми :D ? Это не ваше :D
Ok, если вы не понимаете, почему предложить померяться письками не есть оскорбление, а вот назвать собеседника "оно" - очень даже, то вам доходчиво объяснит модератор. Всего вам недоброго
Упс, прочитал снова, как оно читается, сорри, действительно можно подумать, что "оно" - это вы. Извините, я конечно не это имел в виду. Под "оно" подразумевался ваш подход последних дней, который не включает особого обсуждения по существу дела, зато включает меряние пипи... :D Я бы конечно не стал вас оскорблять ни при каких обстоятельствах, это жа вся дискуссия просто развлекаловка с познавательным содержанием и все :-)
ksi
Уже с Приветом
Posts: 10066
Joined: 20 May 1999 09:01

Re: Айтишники на пенсии

Post by ksi »

АццкоМото wrote: 18 May 2017 19:08
partner_ca wrote: 18 May 2017 18:59
ksi wrote: 18 May 2017 18:50 Нужен он будет позднее, во многих местах данной функции. Логическое место, где у вас есть доступ к данных, которые позволяют его наполнить содержанием, находиться в другом месте функции, под всякими if. Как и где создавать объект?
"Всякие if" можно (и надо) поместить в конструктор.
На самом деле вовсе не обязательно. Отложенная инициализация - вполне нормальное дело, когда есть на то причины. В конструкторе можно инициализировать то, что критично и быстро, а в каком-нибудь init() - то, что делается долго и нудно. Другой вопрос, что если init() - не метод класса, то почти всегда это терминальный рак мозга
init () конечно метод класса, но дело не в этом. Какой бы у вас не был конструктор, после того как вы его позвала, объект уже есть, но он "недоделанный" Пользоваться им еще нельзя. И это плохо, это тоже самое что иметь неинициализированные данные. Либо ничего не должно быть, либо готовое к употребления - это пойнт, плохо иметь не вэлидные данные в открытом доступе .
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Айтишники на пенсии

Post by АццкоМото »

ksi wrote: 18 May 2017 19:17 init () конечно метод класса, но дело не в этом.
ORLY?
init (p_instance_class );

Честно-пречестно init() это метод класса? Мамой клянетесь?

ksi wrote: 18 May 2017 19:17 Какой бы у вас не был конструктор, после того как вы его позвала, объект уже есть, но он "недоделанный" Пользоваться им еще нельзя. И это плохо, это тоже самое что иметь неинициализированные данные. Либо ничего не должно быть, либо готовое к употребления - это пойнт, плохо иметь не вэлидные данные в открытом доступе .
В тех редких случаях, когда нельзя инициализировать объект во что-то минимально вменяемое и сделать это быстро, и реально нельзя пользваться объектом после создания, но до инициализации, все нормальные люди кидают соответствующий exception, что примерно в 100500 раз лучше NPE/segfault который предлагаете вы.

Простите, не сдержался. Не позорились бы, по вам не оттоптался уже только ленивый
Мат на форуме запрещен, блдж!
ksi
Уже с Приветом
Posts: 10066
Joined: 20 May 1999 09:01

Re: Айтишники на пенсии

Post by ksi »

partner_ca wrote: 18 May 2017 19:15
ksi wrote: 18 May 2017 19:05 Ну это никак невозможно. Эти if грубо говоря статусы которые возвращают абсолютно посторонние функции, которые работают с совершенно другими данными и другими классами.
Не видя конкретного кода трудно дать конкретные ответы по дизайну. Общий ответ - скорее всего кривой дизайн.

Если даный класс зависит от результов многих функций,то почему
эти "абсолютно посторонние функции" не могут быть вызваны из конструктора?

Или просто не понимание духа С++ и попытка механически добавить классы в классический С-ный код.
Может там вообще никакой класс не нужен?
Объект достаточно общий, он используется во многих местах. А те функции, которые поставляют данные для его создания, они совершенно другой природы, в каждом случае разные и используют другие классы. Я слабо представляю, как это может быть вложено в конструктор. Конструктор не может знать, в каких ситуациях его будут звать, это базовая вещь.

То, что это С шный метод - безусловно. Но это пример для СК когда указатели могут быть полезны и в С++ несмотря на существующий механизм передачи по референсу.
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Айтишники на пенсии

Post by АццкоМото »

partner_ca wrote: 18 May 2017 19:24 А доступ к данным только через геттеры/сеттеры.
Кстати, в современных языках эта парадигма стирается и вообще становится устаревшей. Например, если в джава-классе A есть метод getSomething(), то из котлина его можно вызвать и как instanceOfA.getSomething(), так и просто instanceOfA.something

Аналогично, нет никакой нужды писать тривиальные геттеры-сеттеры, просто делаешь данные публичными, а если вдруг понадобится - допишешь геттеры-сеттеры, но интерфейс не поменяется

сцуко, светлое будущее наступило. лет через 20 войдет и в стандарт С++. а может и раньше, если старина бьярни присоединится к старине ритчи
Мат на форуме запрещен, блдж!

Return to “Пенсии”