C++ conversion function 转换函数

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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++ conversion function 转换函数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/325566

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午3:22
下一篇 2023年3月1日 下午3:23

相关推荐