转换运算符

你可以重载类型运算符,以便可以将类型隐式转换为指定的类型。

必须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;