LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

переопределять операторы бум/не бум?

Под переопределять операторы имеется в виду перегружать операции?

Сложный вопрос. Сам над ним голову ломаю.

В этом отношении есть мысль следовать принципу единой точки ответственности. По умолчанию должна быть только одна точка, где задана семантика <имени>.

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

Например. Пусть у нас есть X foo(X x) в модуле MOD1, и есть Y foo(Y y) в модуле MOD2. Таким образом это две разных точки (два разных модуля), которые делят ответственность за имя foo.

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

Так как перегрузка операций это синтаксический сахар над перегрузкой функций, то и для них будет действовать тот же принцип.

Исходная версия wandrien, :

переопределять операторы бум/не бум?

Под переопределять операторы имеется в виду перегружать операции?

Сложный вопрос. Сам над ним голову ломаю.

В этом отношении есть мысль следовать принципу единой точки ответственности. По умолчанию должна быть только одна точка, где задана семантика <имени>.

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

Например. Пусть у нас есть X foo(X x) в модуле MOD1, и есть Y foo(Y y) в модуле MOD2. Таким образом это две разных точки (два разных модуля), которые делят ответственность за имя foo.

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

Так как перегрузка операций это синтаксический сахар над перегрузкой функций, то и для них будет действовать тот же принцип.