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;
}
,下面我們就來說一說關于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;
}
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!