What does operator overloading allow you to do?
hide built-in operators when necessary
add methods to be interpreted by the compiler at runtime
define how enums and other primitive value types work within the rest of the application
define custom functionality for common operators like addition and equality Official documentation: Operator overloading