c++ - Linker error 'unresolved external symbol' : working with templates -


मैं एक टेम्पलेट आधारित वर्ग है [Allotter.h & amp; Allotter.cpp]:

<पूर्व> टेम्पलेट & lt; typename allotType & gt; कक्षा आलोकटर {सार्वजनिक: आलटर (); क्विंट 32 गेट एलोॉटमेंट (एलोटटाइप *); Bool removeAllotment (quint32, int auto_destruct = 0); निजी: QVector & lt; QPair & lt; quint32, आलोटटाइप * & gt; & gt; indexReg; Int init_topIndex; };

और उसका उपयोग [ActiveListener.h & amp; ActiveListener.cpp]:

  वर्ग ActiveListener: सार्वजनिक QObject {Q_OBJECT सार्वजनिक: ActiveListener (); निजी स्लॉट: शून्य प्रसंस्करण कनेक्शन (); शून्य पढ़ेंफ्रॉसमॉट (इंट); निजी: QTcpServer * rootServer; QSignalMapper * सिग्नलगेट; Allotter & LT; QTcpSocket & gt; TcpAllotter; };  

मैं पूरी परिभाषा नहीं दिखा रहा हूँ, क्योंकि यह वास्तव में कोई बात नहीं है। समस्या यह है कि जब मैं संकलित करता हूं, तो सभी फ़ाइलें ठीक से संकलित होती हैं I फाइलें एक वीसी ++ प्रोजेक्ट में हैं इससे पहले जब मैंने Allotter के लिए एक टेम्पलेट-आधारित दृष्टिकोण का उपयोग नहीं किया, तो सब कुछ संकलन और जुड़ा हुआ था। लेकिन अब, मैं इस त्रुटि मिलती है:

  1 & gt; ActiveListener.obj: त्रुटि LNK2019: अनसुलझे बाह्य प्रतीक "सार्वजनिक: __thiscall Allotter & LT; वर्ग QTcpSocket & gt; :: Allotter & LT; वर्ग QTcpSocket & gt; (शून्य)" (?? 0 $ Allotter @ VQTcpSocket @@@@ QAE @ XZ?) समारोह में संदर्भित "सार्वजनिक: __thiscall ActiveListener :: ActiveListener (शून्य)" (?? 0ActiveListener @@ QAE @ XZ) 1 & gt; ActiveListener.obj: त्रुटि LNK2019 : अनसुलझे बाह्य प्रतीक "सार्वजनिक: अहस्ताक्षरित int __thiscall Allotter & LT; वर्ग QTcpSocket & gt; :: getAllotment (कक्षा QTcpSocket *)" (getAllotment @ $ Allotter @ VQTcpSocket @@@@ QAEIPAVQTcpSocket @@@ जेड?) समारोह में संदर्भित "निजी: शून्य __thiscall ActiveListener :: processConnections (शून्य) "(? processConnections @ ActiveListener @@ AAEXXZ)  

आश्चर्य की बात बात है, कि निर्माता, ActiveListener :: ActiveListener () सभी पर कोई भी संदर्भ नहीं बनाते Allotter & lt; QTcpSocket & gt; :: Allotter () । दूसरा संदर्भ मौजूद है लेकिन मुझे समझ में नहीं आता है कि लिंकर इस बाहरी प्रतीक को हल करने में समर्थ क्यों नहीं है।

त्रुटियों के प्रदर्शित होने से पहले ही बिल्ड आउटपुट है:

  1> Moc ' Ing ActiveListener.h ... 1 & gt; संकलन ... 1 & gt; stdafx.cpp 1 & gt; संकलन ... 1 & gt; ActiveListener.cpp 1 & gt; आलोकटर सीपीपी 1 & gt; moc_ActiveListener.cpp 1 & gt; मुख्य सीपीपी 1 & gt; कोड जनरेट कर रहा है .. 1 & gt; लिंकिंग ...  

मुझे समझ में नहीं आ रहा है कि इनमें से कोई भी प्रासंगिक है, ज्यादातर क्योंकि यह सब पहले पूरी तरह से काम करता था। यह सिर्फ इतना है कि जब मैं टेम्प्लेट का उपयोग करता हूं, तब समस्या का कारण होता है। किसी भी तरह की सहायता को आभार समझेंगे। बहुत बहुत धन्यवाद।

आप .h और .cpp फ़ाइलों में टेम्पलेट को विभाजित नहीं कर सकते हैं - आपको .h फ़ाइल में टेम्पलेट के लिए पूर्ण कोड।


Comments

Popular posts from this blog

Is there an open source WebSockets (JavaScript) XMPP library? -

java - Is there an object like a "Set" that can contain only unique string values, but also contain a count on the number of occurrences of the string value? -

iphone - How do I make a UIPickerView in a UIActionSheet -