<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                #### 為什么需要模板 --- 很多人會很疑惑,明明可以用重載等方式就可以實現需求,那為什么要學習模板這種十分艱澀的知識呢? > 首先,模板確實不好學 無論是從模板的定義來說,還是從模板的各種偏特化,特化,SFINAE等技巧而言,模板對于C++初學者而言,并不是那么友好. 并且對于初學者而言,他們最討厭的也莫過于是報錯,尤其是模板那一大塊冗長復雜的錯誤信息,很多人看到一處報錯就會望而生畏. > 其次,模板很強大 使用模板以及模板相關的編程技巧,可以使得代碼去生成代碼,將程序員從繁雜的手工編寫代碼中釋放. ``` 當然本文不會涉及如果模板寫的不好,還得花時間去改寫這種存在的事實,因為已經超出討論的范疇. ``` --- ##### 簡單的樣例 假定我們有很多個類型需要去實現**相似的功能** 比如,我們要實現不同類型的鏈表 > 使用模板的方式 ```c++ template <typename Type> struct Item { Type value; Item *next; }; template <typename Type> class List { public: .... private: Item<Type> head_; }; int main() { List<int> il; List<double> dl; return 0; } ``` > 不使用模板的方式 不用模板的話大致有這樣幾種方法 1. 枚舉所有類型 2. 使用void* 3. 宏 囿于篇幅只介紹一種利用宏來實現的,當然這種還是不建議使用 ```c++ #define GetType(Type) Item##Type #define Generate(Type) \ struct GetType(Type) { \ Type value; \ struct GetType(Type) * next;\ } Generate(int); Generate(double); int main() { GetType(int) il; il.value = 8; il.next = nullptr; return 0; } ``` ---- ##### 對比 從排版上來說,也是模板實現的更加易讀 而且宏的話,對于大部分初學者而言也是極其難以控制的
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看