इस लेख में हम सी++ एसटीएल में काम करने, वाक्य रचना और std::is_final टेम्पलेट के उदाहरणों पर चर्चा करेंगे।
is_final एक टेम्प्लेट है जो
C++ में फाइनल क्लास क्या है?
जब हम अंतिम विनिर्देशक के साथ एक वर्ग घोषित करते हैं तो इसे अंतिम वर्ग कहा जाता है। अंतिम वर्ग एक विशेष प्रकार का वर्ग है जिसे अन्य वर्ग बनाने के लिए विस्तारित नहीं किया जा सकता है। C++ में किसी क्लास को फ़ाइनल बनाने के लिए हम एक क्लास को एक दोस्त के रूप में बनाते हैं और फिर उस क्लास को वर्चुअली इनहेरिट करते हैं, ताकि उस क्लास को एक्स्टेंडेबल नहीं बनाया जा सके।
अंतिम कक्षा का उदाहरण
class final_abc; //Class which is to be made final class abc { private: abc(){cout<<"abc constructor";} friend class final_abc; }; class final_abc : virtual abc //made it final class. { public: final_abc(){cout<<"Final class constructor";} }; class derive : public final_abc; //Error can't be extended
सिंटैक्स
template <class T> is_final;
पैरामीटर
टेम्प्लेट में केवल T प्रकार का पैरामीटर हो सकता है, और जांच सकता है कि दिया गया प्रकार अंतिम श्रेणी का प्रकार है या नहीं।
रिटर्न वैल्यू
यह एक बूलियन मान देता है, यदि दिया गया प्रकार अंतिम वर्ग है, तो सत्य है, और यदि दिया गया प्रकार अंतिम वर्ग नहीं है, तो यह गलत है।
उदाहरण
Input: class final_abc; class abc { friend class final_abc; }; class final_abc : virtual abc{ }; is_final<abc>::value; Output: False Input: class final_abc; class abc { friend class final_abc; }; class final_abc : virtual abc{ }; is_final<final_abc>::value; Output: True
उदाहरण
#include <iostream> #include <type_traits> using namespace std; class TP { //Same if it will be a structure instead of a class }; class T_P final { //Same if it will be a structure instead of a class }; int main() { cout << boolalpha; cout << "Using is_final"; cout << "\nTutorials Point: "<<is_final<TP>::value; cout << "\nT_P Final: "<<is_final<T_P>::value; cout << "\ncheck for char: "<<is_final<int>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Using is_final Tutorials Point: false T_P Final: true check for char: false
उदाहरण
#include <iostream> #include <type_traits> using namespace std; union TP { //Union }; union T_P final { //Union }; int main() { cout << boolalpha; cout << "Using is_final"; cout << "\nTutorials Point: "<<is_final<TP>::value; cout << "\nT_P Final: "<<is_final<T_P>::value; cout << "\ncheck for char: "<<is_final<int>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Using is_final Tutorials Point: false T_P Final: true check for char: false