如何知道何时调用转换运算符

时间:2014-09-24 07:37:45

标签: c++

我一直在阅读转换运算符但是我仍然不确定何时调用转换运算符。请考虑以下示例:

class foo
{
public:
    operator char*()
    {
        return "SomeText";
    }
};


foo d;
const char* m = static_cast<char*>(d);

为什么使用此强制转换调用转换运算符?哪个运营商正在呼叫它?

1 个答案:

答案 0 :(得分:1)

引用static_cast文档

  

如果可以声明并初始化类型为new_type的临时对象   使用expressionnew_type Temp(expression);,可能涉及   隐式转换,对new_type的构造函数的调用或调用   然后,到用户定义的转换运算符   static_cast<new_type>(expression)计算并返回该值   临时对象。

这不是T.C.的运营商。注意到,它是conversion function