成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

缺少了C++模板真的不行嗎

開發(fā) 后端
完善的C++模板對于技術(shù)人員來說,提供了相關(guān)專業(yè)的工具,這樣可以為整個軟件開發(fā)周期少了不少彎路,降低工作的復(fù)雜性。

首次進(jìn)行C++的初始學(xué)習(xí)時,首先接觸到的就是C++模板,在創(chuàng)建C++模板時出現(xiàn)了一些困難和難以理解的地方,比如向上類型轉(zhuǎn)換,向下類型轉(zhuǎn)換等相關(guān)麻煩,對于除類型之外,其余都相同的函數(shù),我們一般有3種解決辦法。

1、針對每個不同的類型重復(fù)地編寫函數(shù)實體(C語言的做法):

  1. T const& f(T const& a, T const& b)  
  2. {  
  3. return a + b; //1處  
  4. }  
  5. int g = f(1,2); 

2、使用Object(Java的做法)或者void*缺點有兩個效率問題方面也有問題類型檢查問題

3、使用宏預(yù)處理機制

缺點:只是愚蠢的文本替換,而且也不會考慮作用域和類型安全。然而,應(yīng)用C++模板卻可以避免這些缺點,我們可以編寫:

優(yōu)點:

代碼簡潔優(yōu)雅,所有參數(shù)類型都以T來代替,真正實現(xiàn)了類型無關(guān)性。更好的類型安全性,所有的類型檢查都是在編譯期進(jìn)行,而且避免使用指針。不存在繼承,效率高。(1)沒有虛函數(shù);(2)所有的一切工作都是在編譯期完成,大大提高運行效率。目的:告訴編譯器如何做出最佳的選擇,而且這種選擇全部是在編譯期完成的。C++模板的機制:特化 和 實參演繹

  1.  // traits/accumtraits3.hpp  
  2. template  
  3. lass AccumulationTraits;  
  4. c template<> 
  5. class AccumulationTraits {  
  6. public:  
  7. typedef int AccT;  
  8. static AccT const zero = 0;  
  9. };  
  10. template<> 
  11. class AccumulationTraits {  
  12. public:  
  13. typedef int AccT;  
  14. static AccT const zero = 0;  
  15. };  
  16. template<> 
  17. class AccumulationTraits {  
  18. public:  
  19. typedef long AccT;  
  20. static AccT const zero = 0;  
  21. };  
  22. (2)policy:通常表現(xiàn)為某個函數(shù),指定的是一種行為  
  23. class SumPolicy {  
  24. public:  
  25. template  
  26. static void accumulate (T1& total, T2 const & value) {  
  27. total += value;  
  28. }  
  29. };  
  30. (3)trait和policy的用法:  
  31. template > 
  32. class Accum {  
  33. public:  
  34. typedef typename Traits::AccT AccT;  
  35. static AccT accum (T const* beg, T const* end) {  
  36. AccT total = Traits::zero();  
  37. while (beg != end) {  
  38. Policy::accumulate(total, *beg);  
  39. ++beg;  
  40. }  
  41. return total;  
  42. }  
  43. }; 

優(yōu)點:由:全局特化->局部特化->基本C++模板,這種特化順序的選擇與匹配(重載解析規(guī)則)是由編譯器自動進(jìn)行的,無需人工參與。可以根據(jù)不同的情況(諸如類型不同,條件不同),給出不同的實現(xiàn),從而獲得更加靈活的針對性??梢葬槍θ魏巫兓纳屏顺绦虻臄U展性。

實參演繹
第1部分介紹了模板的基本概念,以教程的風(fēng)格來介紹這些基本概念。第2部分闡述了模板的語言細(xì)節(jié),可以作為一本基于模板的構(gòu)造的參考手冊。第3部分介紹了C++模板所支持的基本設(shè)計技術(shù),范圍覆蓋從微小的概念一直延伸到復(fù)雜的用法;一些技術(shù)在別的書籍都沒有出現(xiàn)過。第4部分基于前兩部分,深入討論了各種使用C++模板的普通應(yīng)用程序。

【編輯推薦】

  1. 如何正確編寫C++項目開發(fā)編寫項目計劃書
  2. 對C++庫函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. 深度演示C++語言的種種高安全性
  4. 詳細(xì)介紹如何準(zhǔn)確無誤的編寫C++語言
  5. 深度演示C++語言的種種高安全性
責(zé)任編輯:chenqingxiang 來源: C114中國通信網(wǎng)
相關(guān)推薦

2012-09-17 11:06:06

2022-08-22 15:32:59

C++C代碼

2010-01-21 10:23:53

C++代碼

2023-12-18 11:15:03

2010-01-26 09:24:53

C++語言

2010-01-15 16:45:35

C++語言

2024-01-03 09:40:01

QA軟件測試開發(fā)

2023-12-13 10:51:49

C++函數(shù)模板編程

2010-01-14 10:34:02

C++語言

2010-01-18 11:12:36

2010-01-20 17:23:03

C++編程語言

2023-03-26 19:58:25

ChatGPT技術(shù)架構(gòu)

2010-01-20 10:14:53

C++程序

2010-02-03 17:42:33

C++模板參數(shù)

2023-12-06 13:48:00

C++代碼

2010-02-06 16:59:19

C++ kmp算法模板

2015-08-06 10:19:19

編程腦子

2010-01-26 13:55:07

C++標(biāo)準(zhǔn)模板庫

2010-01-21 17:14:40

C++兼容

2010-01-14 14:55:14

C++編譯器
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲大片| 欧美一区二区三区在线免费观看 | 精品婷婷| 亚洲成人精品一区 | 欧美精品久久 | 久草视频在线播放 | 亚洲男人天堂网 | 日韩精品福利 | 日韩精品视频在线观看一区二区三区 | 一级欧美日韩 | 欧美午夜精品理论片a级按摩 | 日日干天天操 | 麻豆久久久9性大片 | 中文字幕日韩专区 | 日本黄色大片免费看 | 久草在线在线精品观看 | 国精产品一区二区三区 | 久久黄色网| 亚洲国产一区视频 | 好好的日在线视频 | 性色av香蕉一区二区 | 91精品国产手机 | 在线观看涩涩视频 | 91视在线国内在线播放酒店 | 日韩欧美亚洲 | 日韩有码一区 | 农村妇女毛片精品久久久 | 欧美日韩国产一区 | 99久久国产综合精品麻豆 | 97免费视频在线观看 | 成人在线免费视频 | 精品国产精品一区二区夜夜嗨 | 亚洲精品66| 国产av毛片 | 亚洲一区在线日韩在线深爱 | 亚洲电影第1页 | 男女精品久久 | 中文字幕一二三区 | 日韩欧美二区 | 精品亚洲一区二区 | 国产精品日韩欧美一区二区 |