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

C++ में is_polymorphic टेम्पलेट

इस लेख में हम C++ STL में std::is_polymorphic टेम्पलेट के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।

is_polymorphic एक टेम्पलेट है जो C++ में <type_traits> हेडर फाइल के अंतर्गत आता है। यह टेम्पलेट जांचता है कि क्लास एक पॉलीमॉर्फिक क्लास है या नहीं और परिणाम तदनुसार true या false लौटाता है।

पॉलीमॉर्फिक क्लास क्या है?

एक क्लास जो एक एब्स्ट्रैक्ट क्लास से वर्चुअल फंक्शन की घोषणा करती है जहां वर्चुअल फंक्शन घोषित किया गया है। इस क्लास में अन्य क्लास में घोषित वर्चुअल फंक्शन की घोषणा होती है।

सिंटैक्स

template <class T> is_polymorphic;

पैरामीटर्स

टेम्पलेट में केवल टाइप T का एक पैरामीटर हो सकता है, और यह जांचता है कि दिया गया टाइप पॉलीमॉर्फिक क्लास है या नहीं।

रिटर्न वैल्यू

यह एक बूलियन मान लौटाता है, यदि दिया गया टाइप पॉलीमॉर्फिक क्लास है तो true, और यदि दिया गया टाइप पॉलीमॉर्फिक क्लास नहीं है तो false।

उदाहरण

Input: class B { virtual void fn(){} }; class C : B {}; is_polymorphic<B>::value; Output: True
Input: class A {}; is_polymorphic<A>::value; Output: False

उदाहरण 1

#include <iostream>
#include <type_traits>
using namespace std;

struct TP {
    virtual void display();
};

struct TP_2 : TP { };

class TP_3 {
    virtual void display() = 0;
};

struct TP_4 : TP_3 { };

int main() {
    cout << boolalpha;
    cout << "Checking for is_polymorphic: ";
    cout << "\n structure TP with one virtual function : " << is_polymorphic<TP>::value;
    cout << "\n structure TP_2 inherited from TP: " << is_polymorphic<TP_2>::value;
    cout << "\n class TP_3 with one virtual function: " << is_polymorphic<TP_3>::value;
    cout << "\n class TP_4 inherited from TP_3: " << is_polymorphic<TP_4>::value;
    return 0;
}

आउटपुट

Checking for is_polymorphic:
structure TP with one virtual function : true
structure TP_2 inherited from TP: true
class TP_3 with one virtual function: true
class TP_4 inherited from TP_3: true

उदाहरण 2

#include <iostream>
#include <type_traits>
using namespace std;

struct TP {
    int var;
};

struct TP_2 {
    virtual void display();
};

class TP_3 : TP_2 { };

int main() {
    cout << boolalpha;
    cout << "Checking for is_polymorphic: ";
    cout << "\n structure TP with one variable : " << is_polymorphic<TP>::value;
    cout << "\n structure TP_2 with one virtual function : " << is_polymorphic<TP_2>::value;
    cout << "\n class TP_3 inherited from structure TP_2: " << is_polymorphic<TP_3>::value;
    return 0;
}

आउटपुट

Checking for is_polymorphic:
structure TP with one variable : false
structure TP_2 with one virtual function : true
class TP_3 inherited from structure TP_2 : true
  1. - C++ में String at() फंक्शन

    सारांश यह संक्षिप्त ट्यूटोरियल स्ट्रिंग से कैरेक्टर्स के अनुक्रम को एक्सेस करने के लिए C++ स्ट्रिंग क्लास at() फंक्शनैलिटी का अवलोकन है। आगामी सेक्शन में, एक इच्छुक पाठक स्ट्रिंग क्लास प्रोग्रामिंग उदाहरणों के माध्यम से at() फंक्शन्स के मैनिपुलेशन की पूरी समझ प्राप्त कर सकता है। स्ट्रिंग क्लास प्रोग

  1. - C++ में स्ट्रक्चर बनाम क्लास

    C++ में स्ट्रक्चर और क्लास मूल रूप से समान हैं। लेकिन कुछ मामूली अंतर हैं। ये अंतर नीचे दिए गए हैं। क्लास के सदस्य डिफ़ॉल्ट रूप से प्राइवेट होते हैं, लेकिन स्ट्रक्चर के सदस्य पब्लिक होते हैं। आइए इन दो कोड्स को देखें ताकि अंतर देख सकें। उदाहरण कोड #include <iostream> using namespace std; clas

  1. - C++ में लोकल क्लास (Local Class)

    लोकल क्लास क्या है? एक फ़ंक्शन के अंदर घोषित क्लास को लोकल क्लास कहते हैं क्योंकि यह उस फ़ंक्शन के लिए स्थानीय (local) होती है। बेसिक उदाहरण #include <iostream> using namespace std; void func() { class LocalClass { }; } int main() { return 0; } नियम और प्रतिबंध लोकल क्लास का नाम