C++ conversion function 转换函数

自闭症网瘾萝莉.ら 提交于 2020-01-28 20:34:25
//转换函数:可以实现将一个类转换为令一种类型  举例:
#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;
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!