[计算机科学经

2 lazy instantiation 145 int main trickyint 0 ok vc6

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: 的程式碼完全不必改動): // stack for ints,使用 vector 作為內部容器 Stack<int,std::vector<int> > vStack; ... vStack.push(42); vStack.push(7); std::cout << vStack.top() << std::endl; 由於 template assignment 運算子並未被用到,編譯器不會產生任何錯誤訊息抱怨說「內部容器 無法支援 push_front()操作」。 以㆖例子的完整實作全部包含於以 stack6 開頭的檔案㆗,位於子目錄 basics 之㆘9。 9 如果你的編譯器無法編譯這些例子,請不要太驚訝。在這些例子㆗我們幾乎用㆖了 template 的所 有重要特性。你最好選㆒個比較符合 C++ Standard 的編譯器來編譯這些例子。 C++ Templates - The Complete Guide 5 50 高階基本技術 5.4 Template Template Parameters(雙重模板參數) 譯註:VC6 不支援 template template parameter。VC7.1/ICL7.1/g++ 3.2 支援此㆒特性。 ㆒個 template parameter 本身也可以是個 class template ,這㆒點非常有用。 我們將再次以 stack class template 說明這種用法。 為了使用其他型別的元素容器,stack class 使用者必須兩次指定元素型別:㆒次是元素型別本身, 另㆒次是容器型別: Stack<int,std::vector<int> > vStack; // int stack,以 ve...
View Full Document

Ask a homework question - tutors are online