मान लीजिए कि हम डेटा छिपाने और इनकैप्सुलेशन के साथ छात्र डेटा प्रकार बनाना चाहते हैं। छात्रों के पास first_name, last_name, आयु और कक्षा के आइटम होने चाहिए, लेकिन इन चरों को सीधे एक्सेस नहीं किया जा सकता है। हमें कुछ फ़ंक्शन जैसे get_firstname() set_firstname(), get_age() set_age() आदि को परिभाषित करना होगा ताकि वेरिएबल मानों को पुनर्प्राप्त और अपडेट किया जा सके, और इस प्रारूप में छात्रों के विवरण प्रदर्शित करने के लिए एक to_string() फ़ंक्शन (आयु, first_name, last_name, class) ) कंसोल से इनपुट के रूप में चार पैरामीटर लें और उन्हें सेटर विधियों का उपयोग करके सेट करें जिन्हें हमने परिभाषित किया है, और प्रत्येक आइटम को गेटटर विधियों का उपयोग करके और अंत में to_string() विधि का उपयोग करके दिखाएं।
तो, अगर इनपुट पसंद है
priyam kundu 16 10
तो आउटपुट होगा
16 priyam kundu 10 (16, priyam, kundu, 10)
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
first_name के साथ एक वर्ग को परिभाषित करें, प्रकार की स्ट्रिंग और आयु का last_name, पूर्णांक प्रकार का cl
-
सभी विशेषताओं के लिए गेट्टर फ़ंक्शन को परिभाषित करें
-
सभी विशेषताओं के लिए सेटर फ़ंक्शन को परिभाषित करें
-
स्ट्रिंग-स्ट्रीम ऑब्जेक्ट का उपयोग करके to_string() फ़ंक्शन को परिभाषित करें और स्वरूपित स्ट्रिंग बनाएं जो आउटपुट प्रारूप से मेल खाता हो
-
मुख्य विधि से निम्न कार्य करें -
-
प्रत्येक पंक्ति को पढ़ें और क्रमशः first_name, last_name, आयु, cl स्टोर करें
-
इन मानों को कक्षा के सदस्यों में सेट करने के लिए कॉल सेटर फ़ंक्शन करता है
-
गेट्टर विधियों का उपयोग करके सभी विशेषताएँ प्रिंट करें;
-
to_string() फ़ंक्शन का उपयोग करके इस प्रारूप (आयु, first_name, last_name, cl) में छात्र जानकारी प्रदर्शित करें।
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <iostream> #include <sstream> using namespace std; class Student{ private: int age, cl; string first_name, last_name; public: int get_age(){return age;} int get_class(){return cl;} string get_firstname(){return first_name;} string get_lastname(){return last_name;} void set_age(int a){age = a;} void set_class(int c){cl = c;} void set_firstname(string fn){first_name = fn;} void set_lastname(string ln){last_name = ln;} string to_string(){ stringstream ss; ss << "(" << age << ", " << first_name << ", " << last_name << ", " << cl << ")"; return ss.str(); } }; int main() { Student stud; int age, cl; string first_name, last_name; cin >> first_name >> last_name >> age >> cl; stud.set_age(age); stud.set_class(cl); stud.set_firstname(first_name); stud.set_lastname(last_name); cout << stud.get_age() << endl; cout << stud.get_firstname() << endl; cout << stud.get_lastname() << endl; cout << stud.get_class() << endl; cout << endl << stud.to_string(); }
इनपुट
priyam kundu 16 10
आउटपुट
16 priyam kundu 10 (16, priyam, kundu, 10)