STL程式設計實踐五:巢狀式的型別宣告 (轉)
STL設計實踐五:巢狀式的型別宣告:namespace prefix = o ns = "urn:schemas--com::office" />
E –
前言
STL是泛型程式設計的一個研究成果。在泛型程式設計中巢狀式的型別宣告是其的慣用手法,它利用了typedef關健字。”STL程式設計實踐四”中我們對該關健字的用途做了些簡單介紹。這裡說一下利用typedef關健字在泛型程式設計中進行巢狀式的型別宣告。也算是對”STL程式設計實踐四”的補充,請別見笑。歡迎批評指正。
正文
巢狀式的型別宣告聽起來好像很複雜,其實很簡單,舉個例子:
template
struct Ctype
{
typedef T value_type; //這就是巢狀式的型別宣告
};
簡單吧!但它在泛型程式設計中佔有很重要的地位,主要是用來獲取Template引數的原始型別,下面就說個不太恰當的例子(注:不恰當不是說語法不對,只是指這個例子有沒有用,或有沒有必要這樣寫等)。
template
struct Ctype
{
typedef T value_type; //巢狀式的型別宣告
};
template
struct Ctype
{
typedef T value_type; //巢狀式的型別宣告
};
……
template
typename Ctype
func(T t)
{
……
}
……
int *pi = new int(10);
int iresult = func
這段簡單的程式中就使用了巢狀式的型別宣告,函式func希望返回T引數的原始型別(在這裡是int),當func的模板引數為int*時T型別是int*,所以函式func不能直接返回型別T。透過返回Ctype
大家能看明白嗎?希望對大家有幫助,不明白或有錯誤請來信,謝謝你們先!
2001-11-28晚
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990551/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 宣告式事務能否和程式設計式事務巢狀使用?程式設計巢狀
- STL程式設計實踐二: 注意迭代子的失效 (轉)程式設計
- STL程式設計實踐六:自定義型別儘量定義恆等和小於運算子 (轉)程式設計型別
- 鴻蒙程式設計江湖:ArkUI 的宣告式 UI 程式設計與狀態管理鴻蒙程式設計UI
- 用超程式設計來判斷STL型別程式設計型別
- 五種型別的程式設計師型別程式設計師
- 程式設計師的五種型別程式設計師型別
- STL程式設計實踐三:剖析STL容器的複製構造和賦值特性 (轉)程式設計賦值
- STL程式設計實踐一:謹慎使用下標運算子 (轉)程式設計
- STL程式設計實踐七:儘量定義class形式的Function Object (轉)程式設計FunctionObject
- MapReduce程式設計實踐之自定義資料型別程式設計資料型別
- 程式設計的藝術:不巢狀主義程式設計巢狀
- STL程式設計實踐四:簡化輸入和提高可維護性 (轉)程式設計
- JS 命令式 宣告式 函式式 程式設計?JS函式程式設計
- React基礎:宣告式程式設計React程式設計
- 基於CORBA的分散式程式設計(五) (轉)ORB分散式程式設計
- C 程式設計最佳實踐(轉)程式設計
- 三級 NestedScroll 巢狀滾動實踐巢狀
- vue宣告式埋點實踐Vue
- Linux Shell程式設計(17)——巢狀迴圈Linux程式設計巢狀
- GO語言泛型程式設計實踐Go泛型程式設計
- 黑馬程式設計師——型別轉換程式設計師型別
- 06 . Vue路由簡介,原理,實現及巢狀路由,動態路由,程式設計式導航Vue路由巢狀程式設計
- TypeScript魔法堂:函式型別宣告其實很複雜TypeScript函式型別
- 一個類資料型別的STL例子 (轉)資料型別
- 好程式設計師大資料教程Scala系列之方法的巢狀和方法多型程式設計師大資料巢狀多型
- C++程式設計最佳實踐(轉)C++程式設計
- 【架構設計】無狀態狀態機在程式碼中的實踐架構
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- 封裝多型巢狀封裝多型巢狀
- Mybatis實踐(一)型別轉換器MyBatis型別
- 程式設計師的(血型)型別程式設計師型別
- [CUJ]泛型程式設計--轉移建構函式 (轉)泛型程式設計函式
- Oracle 巢狀表(轉)Oracle巢狀
- 巢狀使用 datalist (轉)巢狀
- 巢狀評論的資料庫表設計巢狀資料庫
- C++ 型別宣告C++型別
- 程式設計修養(五) (轉)程式設計