【发布时间】:2021-10-21 22:27:29
【问题描述】:
下面是什么意思?
inline const char * operator*(AnEnumClass aclassinstance) {
...
}
是函数调用运算符重载'*' 运算符还是'()' 运算符? 它的作用和用途是什么?
【问题讨论】:
-
operator()()是()运算符的重载。
下面是什么意思?
inline const char * operator*(AnEnumClass aclassinstance) {
...
}
是函数调用运算符重载'*' 运算符还是'()' 运算符? 它的作用和用途是什么?
【问题讨论】:
operator()() 是 () 运算符的重载。
inline // function should be marked as inline.
const char * // function returns this
operator * // function is the multiplication operator
(AnEnumClass aClassInstance) // RHS argument to operator
无论封装类是什么,运算符都将其作为 LHS。
你调用它:
const char * aString = aClass * aEnum;
(给定封装类和枚举类型的实例。)
Wikipedia 和 cppreference.com 都有一个完整的关于运算符优先级和论证的页面,您应该仔细阅读。
【讨论】:
这是 * 运算符的重载,它返回 const char *。
【讨论】: