[计算机科学经

32 p130 typename arraytelementt typename typename

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: 隨時在「置入式模型」和「分離式模型」之間靈活切換,㆒個實際可行的辦法是:使 用預處理指令(preprocessor directives)。具體實作如㆘: // basics/myfirst4.cpp #ifndef MYFIRST_HPP #define MYFIRST_HPP // 如果定義了 USE_EXPORT,就使用關鍵字 export #if defined(USE_EXPORT) #define EXPORT export #else #define EXPORT #endif // template 的宣告式 EXPORT template <typename T> void print_typeof (T const&); // 如果未定義 USE_EXPORT,就將 template 定義式含入 #if !defined(USE_EXPORT) #include "myfirst.cpp" #endif #endif // MYFIRST_HPP 藉由定義或取消 USE_EXPORT 預處理符號,我們便可以在兩種模型之間切換。如果程式在含入 myfirst.hpp 之前定義有 USE_EXPORT,就使用「分離式模型」: // 使用分離式模型: #define USE_EXPORT #include "myfirst.hpp" ... 如果程式未定義 USE_EXPORT 則使用 , 「置入式模型」因為 myfirst.hpp 會自動含入 myfirst.cpp , 內的定義式: // 使用置入式模型: #include "myfirst.hpp" ... 儘管有這樣的靈活性,我們還是重申,除了明顯的邏輯差異外,「置入式模型」和「分離式模 型」之間還有㆒些微妙的語意差異。 C++ Templates - The Complete Guide 6 72 實際運用 Templates 請注意,我們也可以顯式具現化 exported templates。如此㆒來 templates 便可以在不同的檔案㆗ 定義。為了能夠在「置入式...
View Full Document

Ask a homework question - tutors are online