#include <iostream>
using namespace std;
class Fraction // 分数
{
public:
Fraction(int num, int den = 1):m_numerator(num),m_denominator(den){}
operator double() const{ // 转换函数,将整数型的分子/分母转换为分数形式
return ((double)m_numerator / (double)m_denominator);
}
private:
int m_numerator; // 分子
int m_denominator; // 分母
};
int main()
{
Fraction f(3,5); // 分子为3 分母为5
double result = 4 f; // 调用operator double()将f转换为double类型
cout << result << endl;
}
,下面我们就来说一说关于c语言十二个基本函数?我们一起去了解并探讨一下这个问题吧!
c语言十二个基本函数
#include <iostream>
using namespace std;
class Fraction // 分数
{
public:
Fraction(int num, int den = 1):m_numerator(num),m_denominator(den){}
operator double() const{ // 转换函数,将整数型的分子/分母转换为分数形式
return ((double)m_numerator / (double)m_denominator);
}
private:
int m_numerator; // 分子
int m_denominator; // 分母
};
int main()
{
Fraction f(3,5); // 分子为3 分母为5
double result = 4 f; // 调用operator double()将f转换为double类型
cout << result << endl;
}
转换函数,即上述类中的operator double();函数,为什么函数里面返回的是一个double类型,而函数却没有返回值呢?原来函数本身就没有返回值,而具体的返回值就是函数名称double。
转换函数可以将之前出现的任何类型都可转换过来,比如转换为字符串等等,也可以是自定义的类型。
例如将分子分母转换为字符串,并将其拼接起来。
operator string()const{
string ret;
char buffer[4];
_itoa_s(m_numerator,buffer,10); // 以10进制进行转换
ret = buffer;
_itoa_s(m_denominator,buffer,10);
ret.append(buffer);
return ret;
}