模板初學者指南2 (轉)
模板初學者指南2
原文:">
過載模板
:namespace prefix = o ns = "urn:schemas--com::office" />
函式模板
函式模板可以被其他的函式模板或是其他函式。將遍歷所有可能的函式模板並將建立相應的模板函式。查詢使用最優匹配策略。
在模板中使用友元和其他模板
模板類可以包含其他的模板或是類,也可以使用其他類作為友元。當一個模板類包含另外的類時,有下面兩種可能:
內部的類可以是一個通常的類。內部類獨立於模板引數。否則內部類為另外一個模板。
外部模板類包含另外一個獨立的模板(也獨立於模板引數)。
template < class ElemType >
class Tree
{
//...
public:
class Node
{
friend Tree < ElemType >;
//...
};
};
此例子中,內部模板類Node獨立於Tree。外部類定義為Node的友元,包含引數列表。
模板型別
當使用在模板引數中定義的型別時,應該使用typename來定義:
template < typename T >
class X
{
//...
typename T::X theStuff; // T::X is the type
//...
};
class Test
{
//...
class X { /* ... */ };
};
不使用typename,編譯器報錯。
列舉模板
當使用列舉模板時,可以建立一個產生的通用的類。提供一個列舉函式來分配。此列舉函式可以使用模板列舉函式來實現。可以使用任意型別:
class Builder
{
//...
template < class T > static T* allocateMem();
};
注意:模板列舉函式不能為 virtual.
End
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991630/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Kotlin初學者指南Kotlin
- Nginx初學者指南Nginx
- Groovy初學者指南
- 【譯】GraphQL 初學者指南
- OAuth 2.0初學者指南OAuth
- Apache Hudi初學者指南Apache
- Java初學者入門指南Java
- 給初學者的Web安全指南Web
- 圖資料庫初學者指南資料庫
- Electron 的初學者詳細指南
- 5S管理--初學者指南
- [譯] 網站優化初學者指南網站優化
- React Redux 的初學者詳盡指南ReactRedux
- 模糊測試: 初學者入門指南
- 價值流圖 (VSM) 初學者指南
- 自動機器學習和AI初學者指南機器學習AI
- 給初學者的以太坊路線圖指南
- 一份送給Java初學者的指南Java
- 一份全面的初學者實用指南
- 產品開發專案管理初學者指南專案管理
- 區塊鏈初學者指南——五歲孩子都能理解區塊鏈
- [譯] 為 GitHub 專案做出貢獻的初學者指南Github
- [譯]網路效能入門:2019年初學者指南
- 初識ABP vNext(2):ABP啟動模板
- [譯]寫給初學者的Tensorflow介紹[2]
- Linux入門(2)_給初學者的建議Linux
- 使用開源工具構建 DevOps 流水線的初學者指南開源工具dev
- 資料視覺化初學者指南:定義、示例和工具視覺化
- 適合初學者的who 命令的解釋與示例指南
- 適用於初學者的完整雲端計算學習路線指南
- 始於Jupyter Notebooks:一份全面的初學者實用指南
- 初學者Mybatis的初級使用MyBatis
- 致 Python 初學者Python
- 01 【初學者】引子
- 初學者轉行學Python合適還是C語言合適?PythonC語言
- 層級聚類和Python實現的初學者指南(附連結)聚類Python
- DevOps 初學者寶典dev
- 致 Python 初學者們!Python
- linux系統初學者Linux