Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ टेम्प्लेट केवल हेडर फ़ाइल में ही क्यों लागू किए जा सकते हैं?


जब आप C++ में किसी टेम्पलेट को इंस्टेंट करते हैं, तो कंपाइलर एक नया वर्ग बनाता है। इस वर्ग में वे सभी स्थान हैं जहां आपने टेम्प्लेट तर्कों को वास्तविक तर्क से बदल दिया है जिसे आप इसका उपयोग करते समय पास करते हैं। उदाहरण . के लिए -

template<typename T> class MyClass {
   T foo;
   T myMethod(T arg1, T arg2) {
      // Impl
   }
};

और अपने कार्यक्रम में कहीं न कहीं इस वर्ग का उपयोग करें,

MyClass<int> x;

कंपाइलर आपके द्वारा पास किए जाने वाले प्रत्येक प्रकार के तर्क के लिए इसका सामना करने पर एक नया वर्ग बनाता है। उदाहरण के लिए, यदि आपने अलग-अलग टेम्पलेट तर्कों के साथ 3 ऑब्जेक्ट बनाए हैं, तो आपको 3 वर्ग मिलेंगे, जो -

के बराबर होंगे।
class MyClassInt {
   int foo;
   int myMethod(int arg1, int arg2) {
      // Impl
   }
};

ऐसा करने के लिए, कंपाइलर को इस तरह के बयानों का सामना करने से पहले कक्षा के कार्यान्वयन और विधियों तक पहुंच की आवश्यकता होती है, ताकि उन्हें टेम्पलेट तर्क (इस मामले में int) के साथ तुरंत चालू किया जा सके। यदि ये टेम्पलेट वर्ग कार्यान्वयन शीर्षलेख में नहीं होते, तो वे पहुंच योग्य नहीं होते और इसलिए संकलित नहीं होंगे।



  1. मेरी HTML फ़ाइल को स्रोत मॉड्यूल से JavaScript फ़ंक्शन क्यों नहीं मिल रहा है?

    ऐसा तब हो सकता है जब आपने निर्यात कथन का उपयोग नहीं किया हो। फ़ंक्शन से पहले निर्यात का उपयोग करें जिसे स्क्रिप्ट फ़ाइल में आयात किया जाएगा। जावास्क्रिप्ट फ़ाइल इस प्रकार है जिसकी फ़ाइल का नाम डेमो.जेएस है। demo.js console.log("function will import"); export function test(){    

  1. C++ . में ऑटो स्टोरेज क्लास

    सी में, ऑटो स्टोरेज क्लास स्पेसिफायर आपको स्वचालित स्टोरेज के साथ एक वेरिएबल को स्पष्ट रूप से घोषित करने देता है। एक ब्लॉक के अंदर घोषित चर के लिए ऑटो स्टोरेज क्लास डिफ़ॉल्ट है। जिस ब्लॉक में x घोषित किया गया था, उस ब्लॉक से बाहर निकलने पर स्वचालित संग्रहण वाला एक चर x हटा दिया जाता है। आप केवल ऑटो

  1. C++ सर्वश्रेष्ठ प्रोग्रामिंग भाषा क्यों है?

    C++ एक बहुत शक्तिशाली भाषा के रूप में जानी जाती है। सी ++ आपको कंप्यूटर संसाधनों का उपयोग करने के तरीके के बारे में बहुत अधिक नियंत्रण रखने की अनुमति देता है, इसलिए सही हाथों में, इसकी गति और संसाधनों का सस्ते में उपयोग करने की क्षमता अन्य भाषाओं को पार करने में सक्षम होनी चाहिए। सी ++ के प्रदर्शन क