<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C++模板

      分類

      C++的模板分為函數模板和類模板。
      函數模板:

      template<typename T>
      T myAdd(T a, T b) {
          return a + b;
      }
      

      類模板:

      template <typename T>
      class A {
          ...
      }
      

      注意:結構體做成的模板也是類模板;C++中類和結構體的唯一區別就是默認訪問權限是private還是public。

      主模板和特化

      主模板相當于基類,特化相當于對基類的派生;
      特化分為全特化(實例化模板的某個具體類型,比如int,float)和偏特化(實例化模板的一類類型,比如指針T*,const T)。

      舉例說明,主模板:

      template <typename T>
      class A {
      	... // 默認實現,可以和T無關,一般情況也T無關
      }
      

      全特化 —— 針對int類型:

      template <>
      class A<int> {
      	...
      }
      

      比如:為bool類型優化打印

      #include <iostream>
      
      template<typename T>
      struct Printer {
          void print(T value) {
              std::cout << "General: " << value << std::endl;
          }
      };
      
      // 全特化:為 bool 類型提供更友好的輸出
      template<>
      struct Printer<bool> {
          void print(bool value) {
              std::cout << "Boolean: " << (value ? "true" : "false") << std::endl;
          }
      };
      
      int main() {
          Printer<int> p1;
          p1.print(42);        // 輸出: General: 42
      
          Printer<bool> p2;
          p2.print(true);      // 輸出: Boolean: true
      }
      

      偏特化 —— 針對指針:

      template <typename T>
      class A<T*> {
      	...
      }
      

      比如:

      #include <iostream>
      
      // 主模板:默認不是指針
      template<typename T>
      struct is_pointer {
          static constexpr bool value = false;
      };
      
      // 偏特化:當 T 是某種類型的指針時
      template<typename T>
      struct is_pointer<T*> {
          static constexpr bool value = true;
      };
      
      int main() {
          std::cout << is_pointer<int>::value << std::endl;      // 0 (false)
          std::cout << is_pointer<int*>::value << std::endl;     // 1 (true)
          std::cout << is_pointer<double*>::value << std::endl;  // 1 (true)
      }
      

      有幾點需要注意:

      • template<>為主模板全特化的標志,而class A<T*>為主模板偏特化標志;它們格式固定,不會在普通模板中出現
      • 調用的時候,如果沒有匹配到任何類型,就會使用主模板的默認定義 —— 這點和基類派生類一致
      • 全特化指的是特定的一個類型,比如int,float;偏特化反而指的是一類類型,比如指針,const;不要理解錯了

      適用場景

      普通模板要處理的場景為:只有類型不同,實現完全相同的場景;
      主模板和全特化要處理的場景是:不同類型的內部實現均不相同,具體到單個類型;
      主模板和偏特化要處理的場景是:不同類型的內部實現均不相同,具體到一類類型。

      posted @ 2025-10-20 11:17  moonのsun  閱讀(4)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中文字幕人妻无码一夲道| 国产无遮挡又黄又爽免费网站| 一区二区三区四区黄色片| 六十路老熟妇乱子伦视频| 亚洲成色精品一二三区| 久久夜色精品久久噜噜亚| 天天爱天天做天天爽夜夜揉 | 精品无码国产一区二区三区51安| 亚洲日韩乱码中文无码蜜桃| 色视频在线观看免费视频| av在线播放无码线| 最新国产精品好看的精品| 人妻少妇偷人精品一区| 九九热在线视频精品免费| 贵港市| 人人做人人妻人人精| 亚洲人成人伊人成综合网无码| 69精品无人区国产一区| 亚洲女同精品中文字幕| 精品一区二区三区四区色| 国产在线不卡精品网站| 亚洲欧美日韩久久一区二区| 无码日韩做暖暖大全免费不卡| 亚洲最大成人在线播放| 粉嫩av蜜臀一区二区三区| 中文字幕av无码一区二区三区| 欧美日本激情| 国产精品久久毛片| 日韩精品国产中文字幕| 国产av永久无码天堂影院| 久久精品国产九一九九九| 久久亚洲精品国产精品婷婷| 亚洲国产av剧一区二区三区| 2021国产精品视频网站| 成人午夜大片免费看爽爽爽| 丁香五月婷激情综合第九色| 日韩精品中文字幕亚洲| 国产精品国产三级国产午| av一本久道久久波多野结衣| 久久久久人妻精品一区三寸 | 国产三级精品三级在线观看|