declaration like:
operator type() const{...}
or
operator type() {...}
is a customer defined operator, it is used by compiler to perform implicit conversion when needed. (or you can implictly envoke such operator by (type)classObj or type(classObj) or classObjPtr->operator type() ...
the const keyword tell compiler that this operator will not modify the internal state of the object, so with const keywork, this operator can be used on constant object of this class, otherwise, it can only be used on non-constant objects of this class