सी ++ में, टेम्प्लेट का उपयोग सामान्यीकृत कार्यों और कक्षाओं को बनाने के लिए किया जाता है। इसलिए हम किसी भी प्रकार के डेटा का उपयोग कर सकते हैं जैसे int, char, float, या कुछ उपयोगकर्ता परिभाषित डेटा भी टेम्प्लेट का उपयोग करके।
इस खंड में, हम देखेंगे कि टेम्पलेट विशेषज्ञता का उपयोग कैसे करें। तो अब हम विभिन्न प्रकार के डेटा के लिए कुछ सामान्यीकृत टेम्पलेट को परिभाषित कर सकते हैं। और विशेष प्रकार के डेटा के लिए कुछ विशेष टेम्पलेट फ़ंक्शन। आइए बेहतर विचार प्राप्त करने के लिए कुछ उदाहरण देखें।
उदाहरण कोड
#include<iostream> using namespace std; template<typename T> void my_function(T x) { cout << "This is generalized template: The given value is: " << x << endl; } template<> void my_function(char x) { cout << "This is specialized template (Only for characters): The given value is: " << x << endl; } main() { my_function(10); my_function(25.36); my_function('F'); my_function("Hello"); }
आउटपुट
This is generalized template: The given value is: 10 This is generalized template: The given value is: 25.36 This is specialized template (Only for characters): The given value is: F This is generalized template: The given value is: Hello
कक्षाओं के लिए टेम्पलेट विशेषज्ञता भी बनाई जा सकती है। आइए सामान्यीकृत वर्ग और विशिष्ट वर्ग बनाकर एक उदाहरण देखें।
उदाहरण कोड
#include<iostream> using namespace std; template<typename T> class MyClass { public: MyClass() { cout << "This is constructor of generalized class " << endl; } }; template<> class MyClass <char>{ public: MyClass() { cout << "This is constructor of specialized class (Only for characters)" << endl; } }; main() { MyClass<int> ob_int; MyClass<float> ob_float; MyClass<char> ob_char; MyClass<string> ob_string; }
आउटपुट
This is constructor of generalized class This is constructor of generalized class This is constructor of specialized class (Only for characters) This is constructor of generalized class