在Youtube 上的 GoogleTechTalks 视频中,Bjarne Stroustrup 谈到了即将到来的 C++0x 标准。在视频中,他提到了以下示例:
#include <iostream>
struct Sick
{
Sick(double d) { std::cout << d << "\n"; }
explicit Sick(int i) { std::cout << i << "\n"; }
};
int main()
{
Sick s1 = 2.1;
Sick s2(2.1);
}
他的意思是把explicit
关键字放在Sick(double)
而不是之前Sick(int)
,以突出在某些上下文中与隐式转换相关的问题吗?