Некоторые рекомендации по выбору символа для перегрузки оператора в C++:
- Стараться определять действия перегруженного оператора как можно ближе к логическому значению оператора. cppstudio.com Например, использовать + для сложения строк или других объектов класса, - для удаления строки. cppstudio.com
- Использовать перегрузку только тогда, когда она реально принесёт пользу. cppstudio.com Перегрузка операторов может усложнить программу, если её не использовать правильно. cppstudio.com
- Перегружать только существующие в языке C++ операторы, нельзя «придумать» новые операторы. foxford.ru
- Имя перегруженного оператора должно быть operator x, где x — оператор. learn.microsoft.com Например, чтобы перегрузить оператор сложения, необходимо определить функцию с именем operator+. learn.microsoft.com
- Тип возвращаемого значения должен быть отличным от void, если необходимо использовать перегруженную операцию внутри другого выражения. prog-cpp.ru
Также стоит учитывать, что некоторые операторы, например . (точка), * (звёздочка), :: (двойное двоеточие), ?: (знак вопроса с двоеточием), # (диез) и ## (двойной диез), не могут быть перегружены. cppstudio.com learn.microsoft.com