2013-02-01 45 views

回答

2

給定一個類模板,例如

template <typename> class Template; 

你可以交好模板的特定專業化:

friend class Template<int>; 

或全部專業:

template <typename> friend class Template; 
1

在C++ 11,你可以這樣做:

template<typename T> 
class C 
{ 
    friend T; 
}; 
+0

這不是讓課堂模板成爲朋友。這使得一個班級('T')成爲朋友。 – Mankarse

+0

你是對的,我誤解了他想要的,:) –

3

如果你想要一個不同的類型化的友元類:

template<typename,typename> friend class ClassName; 
+0

所以我需要使用typename關鍵字,然後使用模板參數的標識符? – MTVS

+0

它將使任何模板版本的ClassName成爲朋友。 –

+0

所以如果我的班級模板是:template class CT {}; 其在C類中的朋友聲明是: 模板朋友類CT; 是真的嗎? – MTVS