#include<iostream>
using namespace std;
/*
转换函数练习
2021.8.31
*/
//将一个类转换为double
class Fraction //表示分数的类
{
private:
int son, mom; //分子分母
public:
Fraction(int s = 0, int m = 1)
: son(s), mom(m) {}
//调用opertor函数,后面空一格,接类型加上(),无参数,转换不需要参数
//不需要返回值,因为后面的double已经指明类型
//是一个针对Fraction的转换函数,转换的类型为double
operator double() const
{
return son / (double)mom;
}
};
int main()
{
Fraction f(2, 3);
//此时编译器先寻找有无+的操作符重载,用来处理Fraction与int(或者double)
//如果没有找到,则寻找有无将Fraction类转为int或double类型的转换函数
double s = 2 + f;
cout << s << endl;
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交