C++中的转换构造函数2-2

C++的转换构造函数可以将构造函数参数类型隐式地转换为类类型。可以使用explicit关键字来禁止这种默认的类型转换。

1 explicit关键字

用explicit关键字修饰转换构造函数,MyClass类的代码如下所示

class MyClass
{
  public:
    int m_i;
  public:
    explicit MyClass(int i)
    {
       m_i = i;
    }
};

此时,MyClass类的转换构造函数被定义为explicit。再调用《C++中的转换构造函数2-1》中提到的compareMyClass()函数时

compareMyClass(1);

编译器会报错,报错的信息是“error C2664: “bool compareMyClass(const MyClass &)”: 无法将参数 1 从“int”转换为“const MyClass &””。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值