類型學(xué)轉(zhuǎn)換成其他類型有兩種方式:
目前累計服務(wù)客戶上1000家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗。以網(wǎng)站設(shè)計水平和技術(shù)實力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)站策劃、網(wǎng)頁設(shè)計、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)公司始終以務(wù)實、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。一、用構(gòu)造函數(shù),將基本類型轉(zhuǎn)為構(gòu)造類型
1.用初始化的形式;
class X
{
public:
X(int n);
~X();
};
void f(X arg);
...
int main(){
X(3);
X=a;//a隱式調(diào)用構(gòu)造函數(shù)X(int n);
f(5);//把5調(diào)用構(gòu)造函數(shù)X(int n)轉(zhuǎn)為X arg.然后調(diào)用構(gòu)造函數(shù)。
return 0;
}
二、因為帶參數(shù)的構(gòu)造函數(shù)無法將類類型轉(zhuǎn)為基本類型,所以設(shè)置類型轉(zhuǎn)換函數(shù)
#include
using namespace std;
class rational
{
public:
rational();
rational(int n,int d=1);
rational(double x);//將double類型轉(zhuǎn)換成類類型。
operator double();//將類類型轉(zhuǎn)變?yōu)閐ouble類型,且注意其沒有返回值。
friend rational& operator+(const rational&, const rational&);
friend ostream & operator <<( ostream& os, const rational&);
//注意這里輸出類ostream前面不可以加const因為在輸出流經(jīng)過os時會修改os
//且類型一定是引用類型因為必須用cout對象本身
~rational();
private:
int numerator;
int denominator;
};
int gcd(int a, int b);
rational::rational()
{
numerator = 0;
denominator = 0;
}
rational::rational(int n,int d){
int g;
if (d == 1){
numerator = n;
denominator = d;
}
else{
g = gcd(n, d);//求分子分母的大公約數(shù)
numerator = n / g;//把分母化成最簡;
denominator = d / g;
}
}
rational::rational(double x){
int a, b, g;
a = int(x*1e5);//x乘10的5次方。把小數(shù)變成整數(shù)
b = int(1e5);
g = gcd(a, b);
numerator = a / g;
denominator = b / g;
}
rational::~rational()
{
}
rational::operator double(){//雖然沒有返回值依然要返回double類型的數(shù)。
return double(numerator) / double(denominator);
}
rational& operator +(const rational& a, const rational& b){
rational c;
int d = a.denominator*b.denominator;
int n = a.numerator*b.denominator + a.denominator*b.numerator;
int g = gcd(n, d);
c.denominator = d / g;//將分子分母化為最簡
c.numerator = n / g;
return c;//返回類型是引用還是類類型都可以。
}
ostream& operator <<(ostream& os, const rational& a){
os << a.numerator;
if (a.denominator != 1){
os << "/" << a.denominator;
}
return os;//這里返回os類型的引用目的是連續(xù)使用cout<<"ss"<<"sss";
}
int gcd(int n, int d){//求大公約數(shù)的算法
if (d == 0) return n;
else{
return gcd(d, n%d);
}
}
int main(){
rational a(2, 4);
rational b = 0.3;
rational c = a + b;
cout << double(a) << "+" << double(b)<<"="< //將類類型對象a,b,c轉(zhuǎn)換成double類型。 cout << a << "+" << b << "=" << c << endl; double x = b; c = x + 1 + 0.6; cout << x << "+" << 1 << "+" << 0.6 << "=" << c << endl; cout << rational(x) << "+" << rational(1) << "+" << rational(0.6) << "=" << c << endl; system("pause"); } 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站標(biāo)題:類類型與其他類型的轉(zhuǎn)換-創(chuàng)新互聯(lián)
鏈接分享:http://weahome.cn/article/iiedj.html