【发布时间】:2018-09-24 15:47:36
【问题描述】:
在下面的类中,
你为什么要让运营商explicit。我以为explicit是为了防止隐式调用构造函数?
class Content
{
public:
virtual ~Content() = 0;
virtual explicit operator float&();
virtual explicit operator long long&();
virtual explicit operator std::string&()
}
【问题讨论】:
-
explicit防止隐式转换。用户定义的转换运算符也可以允许隐式转换,除非explicit。 -
"我认为显式是为了防止隐式调用构造函数?" 你为什么认为它只适用于构造函数?谁告诉你的?
-
@AlgirdasPreidžius:任何使用 C++03 或更早版本编译器的人 ;-)
标签: c++ c++11 operator-keyword explicit