标签:function conversion int double denominator C++ 编译器 操作符 Fraction
//转换函数:可以实现将一个类转换为令一种类型 举例: #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; }
标签:function,conversion,int,double,denominator,C++,编译器,操作符,Fraction 来源: https://www.cnblogs.com/zmachine/p/12238706.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。