• <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>
            隨筆 - 30, 文章 - 0, 評論 - 64, 引用 - 0
            數據加載中……

            模板與多文件工程

            template <class T> // 最常用的:一個class 參數。

            template <class T, class U> // 兩個class 參數。

            template <class T, int N> // 一個class 和一個整數。

            template <class T = char> // 有一個默認值。

            template <int Tfunc (int)> // 參數為一個函數。

            從編譯器的角度來看,模板不同于一般的函數或類。
            它們在需要時才被編譯(compiled on demand),
            也就是說一個模板的代碼直到需要生成一個對象的時候(instantiation)才被編譯。
            當需要instantiation的時候,編譯器根據模板為特定的調用數據類型生成一個特殊的函數。


            當工程變得越來越大的時候,程序代碼通常會被分割為多個源程序文件。
            在這種情況下,通常接口(interface)和實現(implementation)是分開的


            用一個函數庫做例子
                 接口通常包括所有能被調用的函數的原型定義。
                                                它們通常被定義在以.h 為擴展名的頭文件 (header file) 中;
                  而實現 (函數的定義) 
                                                則在獨立的C++代碼文件中。


            模板這種類似宏(macro-like) 的功能,對多文件工程有一定的限制:
            函數或類模板的實現 (定義) 必須與原型聲明在同一個文件中
            也就是說我們不能再 將接口(interface)存儲在單獨的頭文件中,
            而必須將接口和實現放在使用模板的同一個文件中。

            回到函數庫的例子,如果我們想要建立一個函數模板的庫,我們不能再使用頭文件(.h) ,取而代之,我們應該生成一個模板文件(template file),將函數模板的接口和實現 都放在這個文件中 (這種文件沒有慣用擴展名,除了不要使用.h擴展名或不要不加任何擴展名)。


            在一個工程中多次包含同時具有聲明和實現的模板文件并不會產生鏈接錯誤 (linkage errors),因為它們只有在需要時才被編譯,而兼容模板的編譯器應該已經考慮到這種情況,不會生成重復的代碼。

            posted on 2008-12-08 12:03 henry08 閱讀(467) 評論(0)  編輯 收藏 引用 所屬分類: C++

            久久久精品国产| 精品久久久久久无码国产| 青青草原综合久久大伊人导航| 亚洲国产精品一区二区久久| 国产精品美女久久久久av爽 | 久久无码专区国产精品发布| 亚洲午夜无码久久久久| 情人伊人久久综合亚洲| 久久国语露脸国产精品电影| 日本福利片国产午夜久久| 久久午夜免费视频| 91精品国产综合久久香蕉| 99精品国产99久久久久久97| 99久久精品免费观看国产| 久久香蕉国产线看观看精品yw | 久久综合给久久狠狠97色| 国产综合免费精品久久久| 久久精品www人人爽人人| 香蕉99久久国产综合精品宅男自| 国产亚洲欧美精品久久久| 伊人色综合九久久天天蜜桃| 伊人色综合久久| 久久国产精品成人影院| 国产成年无码久久久免费| 久久综合给合综合久久| 国内精品久久久久国产盗摄| 日本免费一区二区久久人人澡| 久久人人爽爽爽人久久久| 99久久精品国产一区二区 | 一本色综合网久久| 亚洲精品视频久久久| 久久夜色撩人精品国产小说| 亚洲欧美日韩精品久久| 欧美精品一本久久男人的天堂| 国产亚洲色婷婷久久99精品| 久久AV高清无码| 99久久精品国产高清一区二区| 久久精品国产亚洲AV电影| 色综合久久久久综合体桃花网 | 亚洲人成无码网站久久99热国产 | 国产美女亚洲精品久久久综合|