C++转换函数 (conversion function)与 C++中explicit关键字

C++转换函数 (conversion function)与 C++中explicit关键字

本文将介绍C++中的转换函数(conversion function)和 C++中explicit关键字。

1、c++中explicit的作用

​ 作用:在c++中,explicit只能用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。

 class Circle  
 {  
 public:  
    Circle(double r) : m_R(r) {}  
    Circle(int x, int y = 0) : m_X(x), m_Y(y) {}  
    Circle(const Circle& c) : m_R(c.R), m_X(c.X), m_Y(c.Y) {}  
 private:  
     double m_R;  
     int    m_X;  
     int    m_Y;  
 };  

 int main()  
 {  
 //发生隐式类型转换  
 //编译器会将它变成如下代码  
 //tmp = Circle(1.23)  
 //Circle A(tmp);  
 //tmp.~Circle();  
     Circle A = 1.23;   
 //注意是int型的,调用的是Circle(int x, int y = 0)  
 //它虽然有2个参数,
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值