青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-4  評論-40  文章-117  trackbacks-0

在C和C + +中,如果編譯器看到一個表達式或函數調用使用了一個不合適的類型,它經常
會執行一個自動類型轉換。在C + +中,可以通過定義自動類型轉換函數來為用戶定義類型達到
相同效果。這些函數有兩種類型:特殊類型的構造函數和重載的運算符。
11.6.1 構造函數轉換
如果我們定義一個構造函數,這個構造函數能把另一類型對象(或引用)作為它的單個參
數,那么這個構造函數允許編譯器執行自動類型轉換。如下例:

class One{
 public:
One(){}
};

class Two{
public:
Two(const One&){}
};

void f(Two t){
}

main(){
One one;
f(one);      //Wants a Two, has a One
}

當編譯器看到f( )以為對象o n e參數調用時,編譯器檢查f( )的聲明并注意到它需要一個t w o
對象作為參數。然后,編譯器檢查是否有從對象one 到t w o的方法。它發現了構造函數
t w o : : t w o ( o n e ),t w o : : t w o ( o n e )被悄悄地調用,結果對象t w o被傳遞給f( )。
在這個情況里,自動類型轉換避免了定義兩個f( )重載版本的麻煩。然而,代價是隱藏了
構造函數對t w o的調用,如果我們關心f( )的調用效率的話,那就不要使用這種方法。
• 阻止構造函數轉換
有時通過構造函數自動轉換類型可能出現問題。為了避開這個麻煩,可以通過在前面加關
鍵字explicit (只能用于構造函數)來修改構造函數。上例類t w o的構造函數作了修改,如下:

class One{
 public:
One(){}
};

class Two{
public:
Two(const One&){}
};

void f(Two t){
}

main(){
One one;
//f(one);      //no auto conversion allowed
f(Two(one));      //OK user perform conversion
}


通過使類t w o的構造函數顯式化,編譯器被告知不能使用那個構造函數(那個類中其他非
顯式化的構造函數仍可以執行自動類型轉換)執行任何自動轉換。如果用戶想進行轉換必須寫
出代碼。上面代碼f ( t w o ( O n e ) )創建一個從類型O n e到t w o的臨時對象,就像編譯器在前面版本中
做的那樣。



11.6.2 運算符轉換
第二種自動類型轉換的方法是通過運算符重載。我們可以創建一個成員函數,這個函數通
過在關鍵字o p e r a t o r后跟隨想要轉換到的類型的方法,將當前類型轉換為希望的類型。這種形
式的運算符重載是獨特的,因為沒有指定一個返回類型——返回類型就是我們正在重載的運算
符的名字。這兒有一個例子:

class Three{
int i;
public:
Three(int I = 0, int = 0) : i(I){}
};

class Four{
int x;
public:
Four(int X) : x(X){}
operator Three(){ return Three(x); }
};

void g(three){}

void main(){
Four four(1);
g(four);
g(1);
}


用構造函數技術,目的類執行轉換。然而使用運算符技術,是源類執行轉換。構造函數技
術的價值是在創建一個新類時為現有系統增加了新的轉換途徑。然而,創建一個單一參數的構
造函數總是定義一個自動類型轉換(即使它有不止一個參數也是一樣,因為其余的參數將被缺
省處理),這可能并不是我們所想要的。另外,使用構造函數技術沒有辦法實現從用戶定義類
型向內置類型轉換,這只有運算符重載可能做到。



posted on 2009-03-06 19:07 李陽 閱讀(1246) 評論(0)  編輯 收藏 引用 所屬分類: C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩视频第一区| 一区二区高清在线| 一本色道久久88亚洲综合88| 中文精品在线| 亚洲激情影院| 在线成人激情视频| 黄色国产精品一区二区三区| 国产亚洲一本大道中文在线| 国产精品亚洲产品| 国产一区视频在线看| 国产欧美亚洲精品| 欧美激情综合在线| 欧美视频一区二区三区四区| 欧美欧美在线| 欧美久久电影| 久久在线精品| 亚洲人成在线免费观看| 亚洲国产精品va在看黑人| 国产一区成人| 91久久精品国产91性色tv| 国产一区二区三区在线免费观看 | 国产精品专区h在线观看| 久久婷婷蜜乳一本欲蜜臀| 亚洲国产欧美一区二区三区丁香婷| 国产自产在线视频一区| 久久久久一区| 欧美99在线视频观看| 欧美深夜影院| 国产精品一区二区久久| 激情丁香综合| 国产日韩欧美亚洲| 亚洲日韩第九十九页| 99精品视频免费| 亚洲免费不卡| 欧美伊人久久久久久午夜久久久久 | 午夜国产不卡在线观看视频| 欧美一区日韩一区| 久久久精品动漫| 欧美xxx成人| 国产精品一区免费观看| 国产欧美在线观看一区| 亚洲图中文字幕| 久久久精品欧美丰满| 欧美激情综合| 欧美成人国产va精品日本一级| 国产精品久久国产愉拍| 好吊一区二区三区| 夜夜嗨av色综合久久久综合网| 亚洲高清av在线| 亚洲国产91| 91久久精品日日躁夜夜躁国产| 欧美日韩精品在线| 国产欧美欧美| 亚洲日本一区二区| 亚洲综合色激情五月| 欧美国产日韩一区二区在线观看 | 亚洲欧美日韩高清| 亚洲福利视频网| 99精品热视频只有精品10| 亚洲欧美日韩精品综合在线观看| 国内久久婷婷综合| 欧美一区二区在线视频| 香蕉成人久久| 久久人人爽人人爽爽久久| 欧美激情一区在线| 好吊一区二区三区| 午夜一区二区三区不卡视频| 日韩视频免费观看高清在线视频 | 日韩午夜电影在线观看| 欧美jjzz| 你懂的亚洲视频| 亚洲激情视频网| 亚洲精华国产欧美| 欧美久久久久久久久| 在线视频精品一区| 亚洲午夜精品网| 国产一区91精品张津瑜| 久久天天躁狠狠躁夜夜av| 久久久91精品国产| 亚洲精品久久久久久久久| 亚洲国产天堂久久国产91| 欧美日本一区二区高清播放视频| 一区二区三区日韩在线观看| 亚洲一区二区黄色| 狠狠爱www人成狠狠爱综合网| 美女爽到呻吟久久久久| 欧美精品在线一区二区| 中文在线资源观看视频网站免费不卡| 妖精视频成人观看www| 国产日韩欧美在线播放| 美女精品在线观看| 欧美日韩精品一区二区在线播放| 久久av二区| 欧美成人一品| 欧美一区二区性| 一本色道婷婷久久欧美| 国产日韩在线一区| 欧美高清视频一区二区| 国产精品二区在线观看| 麻豆av一区二区三区久久| 欧美片第一页| 亚洲国产成人av好男人在线观看| 亚洲精品中文字幕女同| 黄色另类av| 亚洲视频日本| 国产精品久久77777| 久久亚洲精品中文字幕冲田杏梨| 国产精品久久久久国产a级| 最新亚洲激情| 在线看国产日韩| 欧美激情一区二区| 一区二区三区四区五区视频| 一本色道久久88亚洲综合88| 欧美国产日本在线| 久久成人精品视频| 国产精品白丝av嫩草影院| 久久综合狠狠| 国产精品一区二区三区免费观看 | 欧美专区日韩视频| 欧美日本国产一区| 欧美成人69av| 中文国产一区| 在线观看国产日韩| 亚洲综合欧美| 亚洲私人影院| 欧美福利电影网| 欧美高清在线视频| 在线免费观看一区二区三区| 欧美一级大片在线观看| 亚洲欧美欧美一区二区三区| 欧美日韩精品免费看| 亚洲人www| 亚洲欧洲日韩在线| 女女同性精品视频| 欧美国产精品va在线观看| 精品91久久久久| 久久久午夜精品| 欧美成人久久| 亚洲精品1234| 欧美经典一区二区| 亚洲免费观看高清完整版在线观看熊 | 一区二区电影免费观看| 欧美精品在线免费| 99视频超级精品| 午夜欧美精品久久久久久久| 国产精品亚洲成人| 欧美一区二区观看视频| 久久手机免费观看| 亚洲黑丝在线| 欧美精品日韩| 亚洲午夜电影| 久久婷婷国产综合尤物精品| 亚洲福利在线观看| 欧美日本不卡高清| 亚洲欧美在线网| 欧美成人在线网站| 久久综合国产精品| 亚洲精品国产精品国自产在线 | 久久青青草综合| 久久国产精品一区二区三区| 午夜一区不卡| 在线视频精品| 久久国产精彩视频| 欧美小视频在线| 亚洲一区一卡| 久久在线免费观看视频| 亚洲三级视频在线观看| 国产精品成人国产乱一区| 欧美在线视频全部完| 亚洲电影免费观看高清| 亚洲线精品一区二区三区八戒| 国产午夜精品视频免费不卡69堂| 久久久免费观看视频| 亚洲美女区一区| 久久米奇亚洲| 一区二区三区四区五区精品视频| 国产综合欧美| 欧美视频在线免费| 久久亚洲一区| 亚洲在线视频免费观看| 亚洲第一福利在线观看| 久久av老司机精品网站导航| 亚洲精选一区二区| 国模一区二区三区| 欧美视频观看一区| 另类图片国产| 欧美一区二区视频观看视频| 久久久久网站| 欧美日韩蜜桃| 欧美jizz19性欧美| 久久成人精品无人区| 一区二区高清| 亚洲国产精品成人综合| 久久九九99视频| 亚洲一区二区黄色| 亚洲精品少妇30p| 亚洲国产精品毛片| 黄色精品网站| 国内一区二区三区在线视频| 国产伦精品一区二区三区免费迷|