我一直在阅读转换运算符但是我仍然不确定何时调用转换运算符。请考虑以下示例:
class foo
{
public:
operator char*()
{
return "SomeText";
}
};
foo d;
const char* m = static_cast<char*>(d);
为什么使用此强制转换调用转换运算符?哪个运营商正在呼叫它?
答案 0 :(得分:1)
引用static_cast文档
如果可以声明并初始化类型为
new_type
的临时对象 使用expression
,new_type Temp(expression);
,可能涉及 隐式转换,对new_type
的构造函数的调用或调用 然后,到用户定义的转换运算符static_cast<new_type>(expression)
计算并返回该值 临时对象。
这不是T.C.的运营商。注意到,它是conversion function