[计算机科学经

Dependent name template parameter t template

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: l; stringStack.pop(); stringStack.pop(); } catch (std::exception const& ex) { std::cerr << "Exception: " << ex.what() << std::endl; return EXIT_FAILURE; // 傳回㆒個錯誤狀態碼 } } 注意,每㆒個被具現化(instantiated)的 class template 都有各自的型別。 (譯註:常見的誤會是: ㆖述㆔個 stacks 隸屬同㆒型別。這是錯誤觀念。)因此 int20Stack 和 int40Stack 是兩個不同 型別,不能互相進行隱式或顯式轉換,兩者不能換用(彼此取代),也不能互相賦值。 你可以指定 non-type template parameters 的預設值: template <typename T = int, int MAXSIZE = 100> class Stack { ... }; 然而從設計角度來看,這樣做並不恰當。Template parameters 的預設值應該符合大多數情況㆘的 要求,然而把 int 當做預設元素型別,或指定 stack 最多有 100 個元素,並不符合㆒個「通用型 stack」的需求。更好的作法是讓使用者...
View Full Document

Ask a homework question - tutors are online