码迷,mamicode.com
首页 > 编程语言 > 详细

C++ conversion function 转换函数

时间:2020-01-28 21:35:48      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:ble   cti   浮点   对象   函数实现   fun   std   class   main   

//转换函数:可以实现将一个类转换为令一种类型  举例:
#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;
}

 

C++ conversion function 转换函数

标签:ble   cti   浮点   对象   函数实现   fun   std   class   main   

原文地址:https://www.cnblogs.com/zmachine/p/12238706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!