C++模板 · 為什麽要引入模板機制?
阿新 • • 發佈:2018-09-25
兩個 class pre 變量 pan nbsp 如果 max() 寫法
剛學過類模板時,很不理解,甚至覺得這簡直沒有用,在自己騙自己嘛!明明很方便的東西,偏偏要加個類模板來回折騰。可能因為我們剛開始寫的程序很簡單,有時候,可能程序復雜一點,對理解一些概念更有幫助。
今天在網上發現了一篇很好的文章,特此摘錄。
- 模板的概念
模板是實現代碼重用機制的一種工具,它可以實現類型參數化, 即把類型定義為參數,從而實現了真正的代碼可重用性。模板可以分為兩類:一個是函數模板,一個是類模板。
舉例理解:
//函數1 int max(int a, int b) { return (a>b ? a : b); } //函數2 float max(float a, float b) { return (a>b ? a : b) } //函數3 double max(double a, double b) { return (a>b ? a : b) }
但在主函數中,如果我們定義了char a, b; 使用max()函數時,程序就會出錯,因為我們沒有定義char類型的重載版本。
如果我們重新審視上述的max()函數,它們具有同樣的功能——求兩個變量的最大值。能否只寫一套代碼來解決這個問題呢?當然可以,所以C++引入了模板機制。
下一篇:C++模板:函數模板的寫法
C++模板 · 為什麽要引入模板機制?