CPP中的类型转换函数

问题:类类型能否转换到普通类型?

        类型转换函数

                1、C++类可以定义类型转换函数

                2、类型转换函数用于将类对象转换为其他类型

                3、语法规则(注意,一般类型转换运算符不应该改变待转换对象的内容,因此,类型转换运算符一般被定义为const成员

                        

代码:

        

 类型转换函数

        1、与转换构造函数具有同等的地位

        2、使得编译器有能力将对象转换为其他类型

        3、编译器能够隐式的使用类型转换函数

有如下代码:

 编译器的行为:

  

因为类型转换函数是隐式执行的,所以无法给这些函数传递实参,淡然也就不能在类型转换运算符的定义中使用任何形参,同时,尽管类型转换函数不负责指定返回类型,但实际上每个类型转换函数都会返回一个对应类型的值。

显示的类型转换:

        为了防止隐式类型转换的产生(因为隐式类型转换会带来未知的情况),C++11新标准引入了显示的类型转换运算符(explicit converson operator)

        

 double res = static_cast<double>(si) + 1.3 就是显式的请求类型转换

si = static_cast<SmallInt>(4.4)  就是显式的调用转换构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值