原完整教程链接:Introduction to operator overloading
In C++, operators are implemented as functions.
- If any of the operands are user data types (e.g. one of your classes, or an enum type), the compiler looks to see whether the type has a matching overloaded operator function that it can call. If it can’t find one, it will try to convert one or more of the user-defined type operands into fundamental data types.
- Almost any existing operator in C++ can be overloaded. The exceptions are: conditional (?:), sizeof, scope (::), member selector (.), and member pointer selector (.*).
- You can only overload the operators that exist. You can not create new operators or rename existing operators. For example, you could not create an operator ** to do exponents.
网友评论