संभव डुप्लिकेट:
हाय,
मेरे पास सी ++ प्रोजेक्ट है जिसमें अनेक हेडर और स्रोत फाइल शामिल हैं I एक टेम्पलेट के साथ कक्षा को संशोधित करने के लिए, मुझे पता चला कि सभी पद्धति परिभाषाएँ हीडर फ़ाइल में शामिल की जानी चाहिए, और इसके परिणामस्वरूप लिंक-टाइम त्रुटि हो जाएगी इसके लिए क्या कारण है और मैं इस पर कैसे जा सकता हूं?
धन्यवाद!
यह जानबूझकर है टेम्पलेट हेडर फाइलें, कहानी के अंत में जाते हैं इसके आसपास कोई रास्ता नहीं है। संकलक को टेम्पलेट को इन्स्ताइज़ करने के लिए इसे देखने में सक्षम होना चाहिए, जिसका अर्थ है कि यह शीर्ष लेख फ़ाइल में होना चाहिए। टेम्प्लेट C # generics की तरह नहीं हैं, जहां मॉडल उन्हें लिंकर द्वारा अनिवार्य रूप से तत्काल छिपाए जाने की अनुमति देता है - टेम्पलेट्स उस से अधिक जटिल हैं, इसलिए उन्हें हेडर फाइल में रहना होगा।
आपकी यात्रा में निर्यात कीवर्ड का उल्लेख मिलेगा, जो इस को हल करना था। एक लंबी कहानी कम करने के लिए, ऐसा नहीं हुआ, कोई भी इसे लागू नहीं करता (एक बहुत बहादुर संकलक विक्रेता के अलावा) और यह जल्द ही C ++ का हिस्सा नहीं होगा।
Comments
Post a Comment