构造函数被explicit修饰

来源:互联网 发布:ziprar解压软件下载 编辑:程序博客网 时间:2024/06/05 03:02

类的构造函数被explicit修饰可以阻止类的对象进行隐式转换,但仍然可以显示转换.

class B{public:explicit B(int a = 10,bool c = true){}};void dosomething(B b){}int main(int *argc , char **argv) {B object1;dosomething(object1);B object2(20);dosomething(20);//如果有explicit这句就报错,因为不能隐式转换(用20去生成一个B对象a=20).dosomething(B(20));//这个是显式转换,无论有不有explicitreturn 0;}


 

原创粉丝点击