类型转换

有两种函数允许编译器进行这些的转换:单参数构造函数single-argument constructors)和隐式类型转换运算符

隐式类型转换运算符只是一个样子奇怪的成员函数:operator 关键字,其后跟一个类型符号。你不用定义函数的返回类型,因为返回类型就是这个函数的名字。

 举例如:

class Rational {

public:

  ...

  operator double() const{return 1;}                   // 转换Rational类成

};                                           

解决方法:

1、不要使用隐式转换,使用成员函数来显示转换。如string定义了一个成员函数c_str转为char *

 2、加explicit在构造函数前。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值