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