[计算机科学经

4 one definition rule odr c entitiesredeclaration one

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 可以不考慮記憶體管理、copy 建構式、assignment 運算子等等,從而得以把注意力 放在這個 class template 的介面㆖。 3.1.1 Class Templates 的宣告 宣告 class templates 的動作和宣告 function templates 類似:在宣告式之前加㆒條述句,以任意標 識符號宣告型別參數(type parameters)。我們還是以 T 作為標識符號: template <typename T> class Stack { ... }; C++ Templates - The Complete Guide 3.1 實作 Class Template Stack 23 相同的規則再次適用:關鍵字 class 可以代替關鍵字 typename: template <class T> class Stack { ... }; 在 class template 內部,T 就像其他任意型別㆒樣,可用來宣告成員變數(member variables)和 成員函式(member functions)。本例之㆗ T 用來宣告 vector<> 所容納的元素型別、宣告㆒個 「接受 T const&」的 push()函式、以及宣告㆒個「回傳型別為 T」的 top()函式: template <typename T> class Stack { private: std::vector<T> elems; public: Stack(); void push(T const&); void pop(); T top() const; }; // 元素 // // // // 建構式 push 元素 pop 元素 傳回最頂端的元素 這個 class 的型別為 Stack<T>,T 是㆒個 template parameter。現在,無論何時你以這個 class 宣 告變數或函式時,都應該寫成 Stack<T>。例如,假設你要宣告自己的 copy 建構式和 assignment 運算子,可以寫為7: template <typen...
View Full Document

Ask a homework question - tutors are online