//转换函数:可以实现将一个类转换为令一种类型 举例: #include <iostream> using namespace std; class Fraction {//一个分数类 public: Fraction(int num,int den=1) :m_numerator(num),m_denominator(den) {} operator double() const { //转换函数 //不改动分子分母的值,所以应该及时加上const以避免出现错误 return (double)(m_numerator/(m_denominator*1.0));//注意浮点数的转化; } int get() const{ return m_denominator; } private: int m_numerator;//分子 int m_denominator; //分母 }; int main() { Fraction f(3,5); double d; d=4+f;//调用函数实现类型的转化 /*底层编译器的具体实现方式为: 1.编译器首先分析是否存在操作符重载,即看一下"+"这个操作符有没有在class中定义 2.当编译器发现没有操作符重载,class对操作符没有定义,开始将对象f进行转换,转化为double类型,然后运算 */ cout<<d<<endl; return 0; }
来源:https://www.cnblogs.com/zmachine/p/12238706.html