1.類型轉(zhuǎn)換按方式分為隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。
        隱式轉(zhuǎn)換:由編譯器自動(dòng)完成,無(wú)需用戶干預(yù)。
        顯式轉(zhuǎn)換:采用一定的形式進(jìn)行轉(zhuǎn)換:類型名(數(shù)據(jù)) / C中(類型名)數(shù)據(jù)
2.關(guān)于轉(zhuǎn)換構(gòu)造函數(shù)
        構(gòu)造函數(shù)的一種,主要用于類型轉(zhuǎn)換,格式嚴(yán)格規(guī)定為單參數(shù)構(gòu)造函數(shù)。
        例:Complex類
             Complex(double r){Real=r;imag=0;}  int(double r);
             Complex a;
              a=2.4; 相當(dāng)于a=Complex(2.4);
         編譯器如果發(fā)現(xiàn)語(yǔ)法有問(wèn)題,會(huì)檢查是否存在轉(zhuǎn)換構(gòu)造函數(shù),有,則隱式轉(zhuǎn)換。
 3.關(guān)于類型轉(zhuǎn)換函數(shù)
         轉(zhuǎn)換構(gòu)造函數(shù)是將一種數(shù)據(jù)類型轉(zhuǎn)換成類對(duì)象。如果編譯器發(fā)現(xiàn)需要將類轉(zhuǎn)換成某種數(shù)據(jù)類型,那該怎么辦?
         類型轉(zhuǎn)換函數(shù)的一般形式:operator 類型名(){轉(zhuǎn)換函數(shù)的實(shí)現(xiàn)}
        沒(méi)有函數(shù)類型,沒(méi)有參數(shù)。
         例:
     #include<iostream>
     using namespace std;
      class Complex
      {
        public :
         Complex(){real=0;imag=0;}
         Complex(double r,double i){real=r;imag=i;}
          operator double(){return real;}
          private:
           double real;
           double imag;
       };
       int main()
    {
         Complex c1(3,4),c2(5,-10),c3;
         double d;
         d=2.5+c1;
         cout<<d<<end1;
         return0;
    }
     d=2.5+c1;
     由于類成員沒(méi)有對(duì)運(yùn)算符+重載,所以2.5與c1無(wú)法直接向加。編譯器發(fā)現(xiàn)存在類型轉(zhuǎn)換函數(shù),故將 隱式調(diào)用double(), c1轉(zhuǎn)換為 double 型3,并將該結(jié)果存放在臨時(shí)變量里。運(yùn)算d=2.5+3得到結(jié)果。
 若主函數(shù)中有c3=2.5+c1;如果沒(méi)有運(yùn)算符+的重載,編譯器會(huì)出錯(cuò)。當(dāng) 運(yùn)算符重載函數(shù)作為類成員出現(xiàn)時(shí),編譯器會(huì)理解為c3=2.5.operator +(c1);由于2.5非complex類,這種解析編譯器也會(huì)出錯(cuò)。對(duì)于c3=c1+2.5的格式,編譯器會(huì)正確處理。
 這種情況使用戶不能方便的使用交換率,為了改變這一不便,需要將重載函數(shù)作為友元函數(shù)而不是類成員函數(shù)。(雙目運(yùn)算符的重載一般都采用友元函數(shù)的方式)
 friend Complex operator +(Complex c1,complex c2);
    在函數(shù)體外定義:
 Complex operator +(Complex c1,complex c2);
  {return Complex (c1.real +c2.real,c1.imag+c2.imag);}
這樣,對(duì)于c3=2.5+c1;(需要增加轉(zhuǎn)換構(gòu)造函數(shù))編譯器在遇到+號(hào)時(shí),會(huì)搜索+兩端的數(shù)據(jù)并引用友元的運(yùn)算符重載函數(shù),其形式變?yōu)椋篶3=operator+(2.5,c1); 而參數(shù)定義都是Complex對(duì)象,因此,隱式調(diào)用轉(zhuǎn)換構(gòu)造函數(shù),形式變?yōu)椋篶3=operator+(Complex (2.5),c1);