ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
729380 Топик полностью
Ксения (18.01.2017 23:45 - 23:52, просмотров: 145) ответил Скрипач на За перегрузку операторов - пороть нещадно. И у меня есть аргументы.
А меня есть контраргументы :). Перегрузки операторов обычно боятся, опасаясь, что текст чужой программы введет их в заблуждение, незаметно подменив традиционную функцию оператора нетрадиционной. Однако в действительности эта опасность отсутствует и вот почему. Дело в том, что традиционные операторы над числами и строками переопределить нельзя, т.к. эти объекты не имеют описания класса, куда бы можно было внести такое переопределение. Стало быть, перегружать можно лишь операторы "самодельных" объектов, которые определены в программе. Тогда как традиционные операторы с самодельными классами обычно не работают. Поэтому сам термин "перегрузка операторов" в данном контексте неудачен тем, что вводит в заблуждение намеком на то, что операторы якобы прежде имели другой смысл, а их смысл после извратили. Тогда как на самом деле к самодельным классам операторы вообще по умолчанию неприменимы, поскольку они не числа. А потому речь идет не о перегрузке, а определению того, какой смысл будут иметь операторы в отношении самодельных классов, т.к. без такого определения операторы к ним вообще не применимы. Конечно есть операторы, работающие с адресами ("&", "*", "->"). Эту тройку перегружать, естественно, нежелательно.