explicit

class B (
public:
explicit B(int x = 0, bool b = true);

};

class C {
public:
explicit C (int x);

};

上述的classes B 和C 的构造函数都被声明为explic址,这可阻止它们被用来执行隐式类型转换(implicit type conversions) ,但它们仍可被用来进行显式类型转
换(explicittype conversions) :
void doSomething(B bObject);             //函数,接受→个类型为B 的对象

B bObjl;

doSomething(bObjl);                                //没问题,传递一个B 给doSomething函数
B bObj2(28);                                           //没问题,根据int28 建立一个B, (函数的bool的 参数缺省为true)
doSomething(28);                                   //错误! DoSomething 应该接受一个B ,不是一个int,而int 至B 之间并没有隐式转换。
 doSomething(B(28));                                //没问题,使用B 构造函数将int 显式转换

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值