eclipse不支持泛型_C++ 泛型编程(一)
生活随笔
收集整理的這篇文章主要介紹了
eclipse不支持泛型_C++ 泛型编程(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊上方“藍字”,發現更多精彩。本文作為泛型編程相關知識點的第一篇,主要對一些基本概念進行總結。泛型編程01PART基本概念①.泛型就是不使用具體數據類型,而是使用一種通用類型 T 來進行程序設計;T 只是一個占位符,實際在 T 的位置真實的數據類型取決于用戶的需求;占位符的替換由編譯器在編譯階段完成。②.泛型編程為了避免因數據類型的不同,而被迫重復編寫大量相同業務邏輯的代碼,因此發展了泛型及泛型編程技術;泛型編程就是獨立于任何特定類型的方式編寫代碼,常用到STL容器、迭代器、和算法都是泛型編程的例子。02PART模版①.概念:模版是 C++ 泛型編程的基礎,一個模版就是一個創建類或者函數的藍圖。②.實例化:編譯器用推斷出的模版參數來為我們創建一個特定版本的函數實例,整個過程發生在編譯階段。03PART與面向對象編程比較①.多態面向對象編程支持運行期多態,如 virtual 函數的動態綁定發生在運行期;泛型編程支持編譯期多態,在編譯器根據模版實例出針對不同類型的具體代碼。②.接口面向對象編程支持顯式接口,是由函數名稱、參數類型、返回類型構成;泛型編程支持隱式接口,是基于有效的表達式推斷出來的。04PARTtypename
①.聲明模版參數
可以使用 class 或者 typename 聲明模版參數,二者含義相同,可用互換。
template<class T> class Widget;//使用 classtemplate<typename T> class Widget;//使用 typename②.聲明從屬嵌套類型
當聲明一個從屬嵌套類型時,必須使用 typename 關鍵字,告訴編譯器這是個類型。因為我們可以用域作用符 :: 來訪問 static 成員和類型成員,在模版代碼中,編譯器遇到 T:: x 時,會默認假定訪問的成員名字而不是類型。
template<typename C>void Print2Nd(const C& container){ typename C::const_iterator iter(container.begin()) //確認是類型不是名稱}?掃碼關注持續獲取最新文章c++學習 算法與數據結構總結
以上是生活随笔為你收集整理的eclipse不支持泛型_C++ 泛型编程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无悔入华夏怎么一直显示服务器,无悔入华夏
- 下一篇: 在钉钉上怎么手写_胖·评测|亲测!磐度A