天天爱天天做天天做天天吃中文|久久综合给久合久久综合|亚洲视频一区二区三区|亚洲国产综合精品2022

  • 
    
    <delect id="ixd07"></delect>

      汶上信息港

      標(biāo)題: 函數(shù)模板 [打印本頁(yè)]

      作者: hbhdgpyz    時(shí)間: 2008-9-29 20:19
      標(biāo)題: 函數(shù)模板
      <P>函數(shù)模板就是一個(gè)函數(shù)的模板,其中函數(shù)定義中的類型并不是實(shí)際類型,編譯器可以根據(jù)函數(shù)模板和相應(yīng)的實(shí)際類型來(lái)產(chǎn)生函數(shù)的實(shí)例(也就是函數(shù))。</P>
      8 u, e' `2 D1 h9 c' H<P><FONT color=#0000ff>重載函數(shù)模板</FONT>與重載函數(shù)有聯(lián)系,因?yàn)槎际侵剌d,但這里重載的是函數(shù)模板,也就是把模板中的(形式)類型用相應(yīng)的實(shí)際類型來(lái)重載,即<FONT color=#ff0000>聲明一個(gè)某種類型的顯式函數(shù)模板</FONT>----這樣的模板中的類型就是實(shí)際類型了,當(dāng)然,原來(lái)一樣的類型這里也應(yīng)重載為同樣類型。這就可以方便地使用函數(shù)模板來(lái)處理隱式類型轉(zhuǎn)換的情況了。</P>
      7 w, L) F  R1 h# k0 O<P>C++在匹配函數(shù)時(shí)遵循以下約定(也就是調(diào)用函數(shù)的"優(yōu)先級(jí)"):</P>
      , l3 b: |( o9 F! Z6 l  j$ w<P><FONT color=#003399>(1)尋找一個(gè)參數(shù)完全匹配的函數(shù),如有就用它。但是如果有多于一個(gè)這樣的函數(shù)就返回出錯(cuò)信息。</FONT></P>
      1 T; U! |5 v1 {( i' L; H& t<P><FONT color=#003399>(2)尋找函數(shù)模板,把它實(shí)例化成一個(gè)匹配的模板函數(shù),如果找到了,就調(diào)用它。</FONT></P>- p4 }; Z, A6 c/ K
      <P><FONT color=#003399>(3)如果有一個(gè)函數(shù)經(jīng)過(guò)隱式類型轉(zhuǎn)換可使所給參數(shù)匹配的話,就調(diào)用它。</FONT></P>
      ( b1 q6 v( F5 m( ?1 |( D0 t4 G<P><FONT color=#003399>(4)用上面的方法都找不到可調(diào)用函數(shù)時(shí),返回出錯(cuò)信息。</FONT></P>
        T  U4 ?- d4 O5 R3 {$ W* o<P><FONT color=#0000ff>函數(shù)模板的處理方法</FONT>:為了能使編譯器在使用模板之間就"看到"模板,就要把它放在使用模板函數(shù)的程序段之前,所以為了確保"萬(wàn)無(wú)一失"并使程序簡(jiǎn)潔,一般<FONT color=#ff0000>將函數(shù)模板的聲明及其實(shí)現(xiàn)存為一個(gè)頭文件</FONT>,然后在程序中包含它就可以了。</P>3 ?6 H2 Z' p. R; M: N, v
      <P><FONT color=#0000ff>特定的模板函數(shù)</FONT>:有時(shí),模板實(shí)例化為某種類型的函數(shù)會(huì)產(chǎn)生錯(cuò)誤的結(jié)果,比如在用指針類型作模板的參數(shù)時(shí)。這時(shí)就要另外定義一個(gè)函數(shù)實(shí)例,來(lái)對(duì)這種類型的數(shù)據(jù)進(jìn)行相應(yīng)處理。這個(gè)函數(shù)是專門用來(lái)<FONT color=#0000ff>替換</FONT>模板產(chǎn)生的<FONT color=#0000ff>實(shí)例的</FONT>,所以叫做<FONT color=#0000ff>特定模板函數(shù)</FONT>。有了這樣的函數(shù),C++編譯器就優(yōu)先調(diào)用它從而使模板不會(huì)產(chǎn)生這種類型的函數(shù)實(shí)例。這和重載函數(shù)模板不同,重載函數(shù)模板重載的是模板而不是模板產(chǎn)生的實(shí)例(即函數(shù)) 。 </P>
      / c0 L+ J6 m: S' r7 c! j<P>有幾個(gè)術(shù)語(yǔ)要區(qū)別開(kāi)來(lái),<FONT color=#0000ff>函數(shù)模板是模板聲明</FONT>,<FONT color=#0000ff>模板函數(shù)是模板實(shí)例</FONT>,<FONT color=#0000ff>特定模板函數(shù)則是替換模板實(shí)例</FONT>。</P>( b* @) a7 V5 _) C+ n8 B3 t
      <P>對(duì)于這一段內(nèi)容,相應(yīng)的<FONT color=#0000ff>實(shí)際運(yùn)用</FONT>應(yīng)該熟練掌握。</P>




      歡迎光臨 汶上信息港 (http://www.vancelump.com/) Powered by Discuz! X3.5