[计算机科学经

266 isclasst class types c templates the complete

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: 法被某個特定型別 T 具現化,不會引發編譯錯誤。舉個例子: class Value { public: Value(int); }; // 無 default 建構式 void init (Array<Value>* array) { Value zero(0); fill(array, zero); // OK:前述宣告㆗的 T()未用㆖。 fill(array); // ERROR:前述宣告㆗的 T()被用㆖,然而 T=Value 卻不合法。 // 譯註:讓我進㆒步解釋:前述宣告㆗的 T 被推導為 Value; fill()第㆓引數預設為 T(), 也就成為 Value()。然而根據 class Value 的定義,並不存在 Value()。所以失敗。 // } 除了兩種 template 基本類型,另有㆔種宣告也可以被參數化,它們都使用類似寫法。㆔者均相 當於 class template 的成員定義20: 1. class templates 的成員函式定義 2. class templates 的 nested class members(嵌套類別成員)定義 3. class templates 的 static 成員變數定義 雖然它們也可以被參數化,但它們並不是第㆒級( first-class ) templates。它們的參數完全由它 們所隸屬的 template 決定。㆘面是個例子: template <int I> class Cu...
View Full Document

This note was uploaded on 08/25/2012 for the course EECS 101 taught by Professor Wre during the Fall '12 term at Beacon FL.

Ask a homework question - tutors are online