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