c++面向对象高级编程 学习七 转换函数

转换函数:对象A和对象B之间的互相转换。

class Fraction
{
public:
	Fraction(int num,int den=1)
	  :m_numerator(num),m_denominator(den){}
	  operator double()const{
		return (double)(m_numerator/m_denominator);
		}
private:
	int m_numerator; //分子
	int m_denominator;//分母
}

其中,下述函数是转换函数,其特征为以operator开头,此处是转换成double类型,故写成double()的形式,因为转换函数不改变类中成员数据的内容,故通常加上const标识。由于转换函数的转换类型即为返回值类型,故省略掉返回值。

operator double()const{
	return (double)(m_numerator/m_denominator);
	}

调用方式:

Fraction f(3,5);
double d=4+f;//编译器编译到此处时,会去搜索有没有编写
//operator +(int n,Fraction f)的函数,
//如果有,则调用该函数
//如果没有,则会去搜索有没有转换函数,此处就会调用
//operator double()转换函数,将f转换为0.6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值