explicit构造函数的作用

作者: veaxen 分类: c/c++ 发布时间: 2017-05-04 12:31

下面程序f()被调用时,输出是什么??

编译运行的结果是:
int

show(s)中的s为short类型,其值为24,因为首先检查参数为short的构造函数能否被隐式转换。由于参数为short的构造函数被声明为显示调用(explicit),因此不能被隐式转换,于是24只能转换成int类型,此时检查参数为int类型的构造函数能否被隐式转换,由于参数为int的该构造函数没有被声明为显示调用,因此可以调用此构造函数构造出一个临时对象。

关于这个问题,还有下面的代码

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注