首页 > 编程语言 > 详细

C++ conversion function 转换函数

时间:2020-01-28 20:25:14      阅读:64      评论:0      收藏:0      [点我收藏+]
//转换函数:可以实现将一个类转换为令一种类型  举例:
#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 转换函数

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!