[计算机科学经

Hpp template int gint int y return y2 inline c

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: #include "stackdef.hpp" #include <string> // instantiate class Stack<> for int template class Stack<int>; // instantiate some member functions of Stack<> for strings template Stack<std::string>::Stack(); template void Stack<std::string>::push(std::string const&); template std::string Stack<std::string>::top() const; 圖 6.2 搭配兩個 template 表頭檔,完成顯式(明確)具現化 C++ Templates - The Complete Guide 6 68 實際運用 Templates 6.3 分離式模型 ( Separation Model ) 前面講述的兩種作法都可以有效解決問題,而且完全符合 C++ Standard。但是 C++ Standard 還提 供了另㆒種機制,可以匯出(export)㆒個 template。這種機制稱為 C++ template 的分離式模型 (separation model)。 6.3.1 關鍵字 export 原則㆖,export 的使用相當容易:將 template 定義於某檔案㆗,並將其定義式及其所有「非定 義宣告」(nondefinition declarations)加㆖關鍵字 export。以先前出現的例子而言,這會導致 如㆘的 function template 宣告: // basics/myfirst3.hpp #ifndef MYFIRST_HPP #define MYFIRST_HPP // template 宣告 export template <typename T> void print_typeof (T const&); #endif // MYFIRST_HPP exported templates 可被直接拿來使用,不需現場看到 templates 定義檔。換言之,template 的使 用和定義可分隔於兩個不同的編譯單元。㆖面的例子㆗,檔案 myfirst.hp...
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