Операції = [] () -> можна перевантажувати лише як методи. Не рекомендується перевантажувати операції, || &&. Поведінка перевантажених операцій має відповідати поведінці цих операцій для стандартних типів даних: операція + повинна змінювати своїх аргументів, операція = повинна повертати посилання лівий аргумент тощо.

Глобальні операції delete не можуть бути перевантажені. Їх можна перевантажити лише стосовно класу. Задані в самій мові глобальні операції new і delete можна змінити.

Наступні оператори перевантажувати не можна:

  • ?: (Тернарний оператор);
  • :: (доступ до вкладених імен);
  • . (Доступ до полів);
  • . * (Доступ до полів за вказівником);
  • sizeof , typeid та оператори каста.

Sep 25, 2016

Унарні оператори, оголошені як функції-члени, не приймають аргументів; при оголошенні як глобальні функції вони приймають один аргумент. Бінарні оператори, оголошені як функції-члени, приймають один аргумент; при оголошенні як глобальні функції вони приймають два аргументу.