转换运算符
你可以重载类型运算符,以便可以将类型隐式转换为指定的类型。
必须在 class
/ struct
中定义转换运算符 :
operator T() const { /* return something */ }
注意:运算符是 const
,允许转换 const
对象。
例:
struct Text
{
std::string text;
// Now Text can be implicitly converted into a const char*
/*explicit*/ operator const char*() const { return text.data(); }
// ^^^^^^^
// to disable implicit conversion
};
Text t;
t.text = "Hello world!";
//Ok
const char* copyoftext = t;