<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 134,comments - 22,trackbacks - 0

    C++ 中的類型查找過程相對簡單,基本上就是名字查找,這里不再介紹。

    對于  .cpp  文件中調用的一個函數  (  成員函數  ),  編譯器主要做了下面三件事情  :

    1  名字查找  .  先在所在編譯單元中可見名字實體 中進行名字查找  . (1)  類成員函數優先  (  對象所在的類  ->  基類  ).  一經找到就停止查找  . 如果沒有  ,(2)  在相應的名字空間中做進一步的搜索  ;  如果還沒有  ,  會根據  (3)  函數參數所在的名字空間中查找  (keoning  查找  ).

    2  重載決議  .  根據所找到的名字進行重載決議  ,  根據參數最匹配原則選擇相應的函數  .

    3  可訪問性檢查  .  用以確定被選中的函數是否可以被調用  .

    說明  :

    1)  根據第一條  ,  顯然  ,  如果類型想和非成員函數一起工作  ,  那么它們應該放在同一個名字空間中  .  比如  ,  一般類型的重載運算符和參數類型放在同一個頭文件中  /  或者同一個名字空間下  .

    2)  函數特化模板不參與重載決議  ,  因此  ,  如果想運用某個函數的特化  ,  最好的方法是重載該函數  ,  在實現中采用該特化來工作  .

    3)  重載決議發生的可訪問性檢查之前  .  正因如此  ,  如果私有函數不幸參與了重載  ,  并且被選中的話  ,  最終也會出現無法訪問的編譯提示  .  這常常隱含二義性  ,  這樣設計也不合理  .  換句話說  ,  私有參數  ,  在名字查找和重載時并非是  ”  私有的  ”.

     

    以  c.Twice  (  21  )的函數調用為例:

    a)  名字查找:編譯器會首先尋找一個至少包含一個名字為  Twice  的實體作用域(類,文件,或者名字空間),并將其中的候選實體列表。例子中,編譯器首先從對象  c  所在的類實體中進行查找,找到就停止;如果沒找到就會依次在其基類和外圍的名字空間   中查找 ,直到找到一個至少含有一個候選函數的作用域。兩點需要注意:  1)  只要找到一個實體就停止查找   ,所以并非所有的同名函數都會被考慮;  2)  參數所在名字空間也屬于查找范圍 (keoning  準則  )  。

    b)  重載決議:從所找到的候選重載函數列表中選出唯一最佳匹配   。如不唯一,就存在二義性。注意:  1)  這是基于名字查找結果的;  2)  特化的模板函數不參與重載。

    c)  可訪問性檢查:確定所選出的函數是否可訪問。這是最后一步,晚于重載決議。

     

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zhenjing/archive/2009/06/25/4299002.aspx

    posted on 2009-12-13 11:15 何克勤 閱讀(231) 評論(0)  編輯  收藏 所屬分類: C/C++
    主站蜘蛛池模板: 免费看黄网站在线看| 精品久久亚洲中文无码| 九九免费观看全部免费视频| 日产乱码一卡二卡三免费| 亚洲人成网站在线播放2019| 成人黄18免费视频| 亚洲精品无码专区久久| 日本免费一区二区三区最新| 亚洲国产乱码最新视频| 午夜高清免费在线观看| 日韩国产精品亚洲а∨天堂免| 国产zzjjzzjj视频全免费| 精品久久亚洲一级α| 亚洲精品国产综合久久一线| a级毛片在线视频免费观看| 亚洲色偷偷偷鲁综合| 日韩精品在线免费观看| 亚洲不卡中文字幕| 男女啪啪永久免费观看网站| 国产av无码专区亚洲av毛片搜 | 亚洲人xxx日本人18| 在线看片人成视频免费无遮挡| 亚洲综合色婷婷在线观看| 成年人免费网站在线观看| 婷婷国产偷v国产偷v亚洲| 亚洲国产精品日韩专区AV| 中文字幕乱理片免费完整的| 亚洲人成网77777色在线播放| 99在线免费观看视频| 久久精品国产亚洲av麻豆蜜芽| 国产91久久久久久久免费| 中文字幕乱理片免费完整的| 亚洲精品在线免费观看视频| 成年女人免费视频播放体验区| 一本久久免费视频| 免费看一区二区三区四区| 亚洲日本乱码一区二区在线二产线 | 国产免费av一区二区三区| 国产精品hd免费观看| 亚洲导航深夜福利| 亚洲国模精品一区|