C++explicit关键字

作用:显示的构造函数,因为构造函数有一个参数时,会有隐式的转换,参数有多个会自动的显示转换,所以不用考虑。拷贝构造函数不要用explicit。对应的还有显示转换implicit。

例子:

# 没加头文件凑合着看
class A
{
    A(int m = 1):_m(m){};
    // elplicit  A(int m = 1):_m(m){}; 
    // 流程2.会报错,原因是我们没有重载opertator=,m不能隐式赋值给_m
    ~A();
public:
    int getM()
    {
        return _m;
    }
private:
    int _m;
}

int main()
{
    //1.
    A a;
    cout << a.getM() << endl;    //输出1
    
    //2.
    A a1(2);
    cout << a.getM << endl;    //输出2
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路奇怪

有钱出钱,没钱多出编程主意啊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值