在類別定義之外定義模板成員函數
在模板程式設計中,可能需要在類別定義之外定義模板成員函數類別定義,同時保持對兩個模板參數的存取。
考慮以下程式碼片段:
<code class="cpp">template <class T> class Foo { public: template <class U> void bar(); };</code>
要在類別定義之外實作bar 函數,我們可以使用以下語法:
<code class="cpp">template<class T> template <class U> void Foo<T>::bar() { ... }</code>
此語法告訴編譯器bar 函數是Foo 類別的成員函數,帶有模板參數T。在bar 的定義中,我們可以存取T 和附加模板參數U,如下所示
例如:
<code class="cpp">template<class T> template <class U> void Foo<T>::bar() { std::cout << "T: " << typeid(T).name() << ", U: " << typeid(U).name() << std::endl; }</code>
此程式碼將在呼叫bar 函數時列印T 和U 模板參數的名稱。
以上是如何在類別定義之外定義模板成員函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!