DASM 0 30 июля, 2014 Опубликовано 30 июля, 2014 · Жалоба Читаю тут программы, которые были созданы до меня, и их необходимо развивать. . Вообщем все красиво и учится стоит. Но вот перегрузка постфиксного ++ меня несколько смутила. Она не просто сдвигает указатель на сдедущую позицию, но попутно может сделать пару забавных вещей, как то стереть сектор во флеше итп, а вид такой наивный как pchar++., чего то даже не знаю, правильно ли это. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 31 июля, 2014 Опубликовано 31 июля, 2014 · Жалоба Я предпочитаю избегать перегрузки операторов. Это вкусовщина, но можно прикинуть, как по такому коду делать поиск: дебаг превратится в тяжкий кошмар. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
menzoda 0 31 июля, 2014 Опубликовано 31 июля, 2014 · Жалоба Перегружать без опаски можно только в очевидных случаях, например, использовать "+=" для добавление объекта в коллекцию, тогда это не вызовет замешательства. Если то что ты сказал действительно так - "++" стирает память, то за такое хорошо бы дать по рукам, потому что ни один человек в здравом уме не догадается, что безобидный постинкремент может что то сотворить с флеш-памятью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 31 июля, 2014 Опубликовано 31 июля, 2014 · Жалоба Как и любой инструмент - если применять с умом, то приносит пользу. А сдуру можно и х.. сломать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neiver 0 31 июля, 2014 Опубликовано 31 июля, 2014 · Жалоба Ну например, для всяких алгебраических типов данных перегрузка операторов однозначно полезна. Вместо какого-нибудь: c = sqrt(complex_add(complex_mul(a, a), complex_mul(b, b))); можно записать: c = sqrt(a * a + b * b); Существенно улучшает читаемость кода и уменьшает вероятность ошибок. Перегружать операторы конечно надо так, чтоб их семантика была очевидна. Плохой пример: MyArray<int> array; ... array = 10; Если оператор присваивания перегружен. Что он может делать с массивом? Делает размер массива равным 10? Или присваивает всем элементам массива значение 10? Или только первому элементу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться