2011-12-19 15 views
9

मेरे पास रेंडरशैडर नामक टेम्पलेट क्लास है, मेरे पास रेंडर नामक एक कक्षा भी है। मैं रेंडरशैडर टेम्पलेट क्लास के सभी उदाहरण रेंडर के साथ दोस्त बनना चाहता हूं। इसके अलावा उपयोगकर्ता को अपने स्वयं के रेंडरशैडर उदाहरण बनाने की अनुमति है, इसलिए उन सभी को मुख्य हेडर फ़ाइल में सूचीबद्ध करना संभव नहीं है। उदाहरण के लिए:सी ++: क्या टेम्पलेट वर्ग के सभी उदाहरणों को मित्र बनाना संभव है?

template<class vertdef> 
class RenderShader 
{ 
public: 
..... 
}; 

class Render 
{ 
    friend class RenderShader; 
public: 
    .... 
}; 

वाक्य रचना "दोस्त RenderShader" गलत है, मुझे क्या करना चाहते हैं क्या के लिए एक सही सिंटैक्स है?

उत्तर

16
class Render 
{ 
    template<class vertdef> 
    friend class RenderShader; 
public: 
    .... 
}; 
+0

यही पर 4 सिस्टम मैं के साथ मेरी कोड संकलन कर रहा हूँ के 3 काम किया: यह VS2010 पीसी, VS2010 XBox360, क्रोम मूल निवासी ग्राहक पर काम किया। यह GP2XWiz के लिए g ++ (Dev-C++ के साथ स्थापित) का उपयोग करने पर काम नहीं किया। – KPexEA

+0

@ केपीएक्सईए: आखिरी मैंने देखा, देव-सी ++ अभी भी जीसीसी 3.4.एक्स के साथ आता है, जो इस बिंदु पर प्राचीन के करीब है। मौजूदा संस्करण (4.6.x) में MinGW को अपडेट करने का प्रयास करें। – ildjarn

+0

@KPexEA क्या आपने टेम्पलेटेड क्लास घोषित किया था? (मित्र घोषणा के रूप में एक ही वाक्यविन्यास) –

संबंधित मुद्दे