मान लीजिए हम एक Triangle क्लास और एक चाइल्ड क्लास Isosceles बनाना चाहते हैं। Triangle क्लास में एक फंक्शन है जो प्रिंट करता है कि ऑब्जेक्ट त्रिभुज प्रकार का है, और Isosceles में दो फंक्शन हैं जो दिखाते हैं कि यह एक समद्विबाहु त्रिभुज है और एक विवरण। हमें Isosceles क्लास ऑब्जेक्ट के माध्यम से पैरेंट क्लास फंक्शन को भी कॉल करना होगा। ऐसा कोई उचित इनपुट नहीं है, हम बस उचित तरीके से फंक्शन कॉल करते हैं।
यदि इनपुट है: trg नामक एक ऑब्जेक्ट परिभाषित करें, फिर trg.isosceles(), trg.description(), trg.triangle() कॉल करें, तो आउटपुट होगा:
This is an isosceles triangle
There are two sides are equal in an isosceles triangle
This is a triangle
समाधान दृष्टिकोण
इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- पहला Triangle क्लास परिभाषित करें जिसमें public/protected फंक्शन triangle() हो
- Isosceles क्लास को public विरासत के साथ परिभाषित करें जिसमें isosceles() और description() दो विधियां हों
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <iostream> using namespace std; class Triangle{ public: void triangle(){ cout<<"This is a triangle" << endl; } }; class Isosceles : public Triangle{ public: void isosceles(){ cout<<"This is an isosceles triangle" << endl; } void description(){ cout<<"There are two sides are equal in an isosceles triangle" << endl; } }; int main(){ Isosceles trg; trg.isosceles(); trg.description(); trg.triangle(); } इनपुट
Isosceles trg; trg.isosceles(); trg.description(); trg.triangle();
आउटपुट
This is an isosceles triangle There are two sides are equal in an isosceles triangle This is a triangle