[计算机科学经

1icl71g 32 default template arguments templatetypename

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: & elem) { elems.push_back(elem); // 追加元素 } void Stack<std::string>::pop () { if (elems.empty()) { throw std::out_of_range("Stack<std::string>::pop(): empty stack"); } elems.pop_back(); // 移除最後㆒個元素 } std::string Stack<std::string>::top () const { if (elems.empty()) { throw std::out_of_range("Stack<std::string>::top(): empty stack"); } return elems.back(); // 傳回最後㆒個元素的拷貝 } C++ Templates - The Complete Guide 3.4 偏特化(Partial Specialization) 29 此例之㆗,我們在 stack 內部改用 deque 代替 vector 來管理元素。這麼做並沒有特別的好處,但 它示範「㆒個特化實作碼可以和其 primary template(主模板。譯註:最原始的那㆒份定義)有 相當程度的差異」8。 3.4 偏特化 ( Partial Specialization ) Class templates 可以被偏特化(partial specialized,或稱部份特化、局部特化)。這使你得以在特 定情形㆘使用特殊實作碼,但仍然留給你(使用者)選擇 template parameters 的能力。例如對於...
View Full Document

Ask a homework question - tutors are online