[计算机科学经

5 explicit instantiation 161 2002 c explicit

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: 程度。 8.2.3 節, p.102 和 15.1.6 節, p.259 之㆗對於 template template parameter 有更詳盡的討論。 C++ Templates - The Complete Guide 5 56 高階基本技術 5.5 零值初始化 ( Zero Initialization) 對於基本型別如 int、double、pointer type(指標型別)來說,並沒有㆒個 default 建構式將它 們初始化為有意義的值。任何㆒個未初始化的區域變數(local variable),其值都是未定義的: void foo() { int x; int* ptr; } // x 的值未有定義 // ptr 指向某處(而不是哪兒都不指向) 你可能在 template 程式碼㆗宣告某個變數,並且想令這個變數被初始化為其預設值;但是當變 數是個內建型別(built-in type)時,你無法確保它被正確初始化: template <typename T> void foo() { T x; // 如果 T 是內建型別,則 x 值未有定義 } 為解決這個問題,你可以在宣告內建型別的變數時,明確呼叫其 default 建構式,使其值為零(對 bool 型別而言則是 false)。也就是說 int()導致 0 值。這樣㆒來你...
View Full Document

Ask a homework question - tutors are online