Разговоры на завалинке о ООП - страница 16

 
Vasiliy Sokolov:

В нормальных языках программирования (не С++перегрузка оператора '=' запрещена.

Нормальный язык это твой шарп? И заодно единственный который ты знаешь? И то хреново, иначе не откалывал бы фраз типа "интерфейсы это не наследование"

Так прикинь там есть оператор =, совсем не как сахар, а как оператор. и в MQL есть -- автоматом генерится, прикинь!

А то что в MQL копи-конструктор намного удобнее того что ты написал, про это даже говорить не стоит. Крч как ты нубом был несколько лет назад, так и остался. Только что ЧСВ подрастил такими как дениска

 
Комбинатор:

...Только что ЧСВ подрастил такими как дениска

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

(обратите внимание: другие у него в третьем лице и с маленькой буквы, т.е. без уважения и "все вы здесь никто")

 
Vasiliy Sokolov:

В нормальных языках программирования (не С++перегрузка оператора '=' запрещена.

Мне очень удобно, особенно, когда использую template широко, что есть возможность перегрузки этого оператора. Да и во многих других ситуациях перегружаю.

А в некоторых перегрузка операторов запрещена практически полностью, т.к. совершенно заслужено там считается антипаттерном.  Предлагаю желающим, прежде чем использовать любую подобную перегрузку, особенно оператор присваивания, хорошо подумать над тем, почему эти глупые архитекторы этих глупых языков так делают.

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


Простейшее

struct MQLTICK : public MqlTick
{
  bool operator >( const double Price ) const
  {
    return(this.bid > Price);
  }

  bool operator <( const double Price ) const
  {
    return(this.ask < Price);
  }
};
 

Vasiliy Sokolov и Комбинатор, перестаньте ругаться , пожалуйста.

А то придется забанить Волчанского, как провокатора срача :)

 
Vasiliy Sokolov:

Меня подловить на конкретике не можешь

тебе мало конкретики? )) шарп-код с присваиванием написать? или показать как копи-конструктор пишется? или перечислить языки в которых есть оператор присваивания? говорить об отсутствии конкретики и выдвигать ложные обвинения в мой адрес гораздо проще чем признать что ты несешь бред
 
Rashid Umarov:

А то придется забанить Волчанского, как провокатора срача :)

ну не. кто ж тогда байки травить будет? уж лучше меня как зачинщика

 
Vasiliy Sokolov:

Не буду поддаваться на провокации хейтеров, к тому же безграмотных, а лучше поясню свою точку зрения:

В нормальных языках программирования (не С++перегрузка оператора '=' запрещена. А в некоторых перегрузка операторов запрещена практически полностью, т.к. совершенно заслужено там считается антипаттерном.  Предлагаю желающим, прежде чем использовать любую подобную перегрузку, особенно оператор присваивания, хорошо подумать над тем, почему эти глупые архитекторы этих глупых языков так делают.

Ну и почему это "нормальные языки программирования" ?

Перегрузка оператора присваивания очень даже удобна во многих случаях. Классический пример - "умные указатели". Оператор присваивания должен не только скопировать указатель, но и сделать AddRef()  - с помощью перегрузки все это делается прозрачно.

Почему это удобно ? А потому, что гораздо логичнее копировать указатели, а не объекты целиком. (Кстати, опять попеняю разработчикам, которые не дают указателей на массивы в индикаторах, и приходится копировать все данные в свой объект). А при интенсивном копировании в разных местах программы - учесть нужен ли объект или нет - затруднительно. Смартпоинтеры в этом случае весьма полезны.

Конечно, есть такие штуки, как "сборщик мусора" - но мне этот вариант нравится меньше, как раз потому, что поинтеры имеют полный доступ к счету ссылок и копирований, а сборщик мусора - нет. Не говоря о том, что поинтеры уничтожают объект сразу, как только он перестает быть нужным, а сборщик мусора - работает с некоторой задержкой.

 
George Merts:

Конечно, есть такие штуки, как "сборщик мусора" - но мне этот вариант нравится меньше, как раз потому, что поинтеры имеют полный доступ к счету ссылок и копирований, а сборщик мусора - нет. Не говоря о том, что поинтеры уничтожают объект сразу, как только он перестает быть нужным, а сборщик мусора - работает с некоторой задержкой.

Угу, GC, даже силком запущенный, не всегда все удаляет. Иногда это становится проблемой.
 
Vasiliy Sokolov:

Не буду поддаваться на провокации хейтеров, к тому же безграмотных, а лучше поясню свою точку зрения:

В нормальных языках программирования (не С++перегрузка оператора '=' запрещена. А в некоторых перегрузка операторов запрещена практически полностью, т.к. совершенно заслужено там считается антипаттерном.  Предлагаю желающим, прежде чем использовать любую подобную перегрузку, особенно оператор присваивания, хорошо подумать над тем, почему эти глупые архитекторы этих глупых языков так делают.

Не удержался, лично андрею: блин, ну не позорься так. Ведь откровенно глупые вещи морозишь: сначала про ФП, теперь про операторы. Хочешь похейтерить - welcome: приводи ссылки на авторитетные источники, обосновывай ну и т.д. А то, что ты делаешь сейчас это оголотелый и главное абсолютно безграмотный хейт. Ты ж вроде программист, вроде даже настоящий - стыдно уже такие вещи писать.


Василий, желательно указывать названия языков. Фразы "в нормальных, "в некоторых", "этих" не прибавляют доверия к сказанному. Мы же программисты, а не беллитристы, давай будем конкретны в заявах.

 
Yuriy Asaulenko:
Угу, GC, даже силком запущенный, не всегда все удаляет. Иногда это становится проблемой.

Если он считает, что объект с большой степенью вероятности вскоре снова будет создан, то не удалит.