C ++ क्लासेस और ऑब्जेक्ट्स

इस ट्यूटोरियल में, हम वस्तुओं और कक्षाओं के बारे में और उदाहरणों की मदद से C ++ में उनका उपयोग करने के तरीके के बारे में जानेंगे।

पिछले ट्यूटोरियल में, हमने फंक्शन्स और वेरिएबल्स के बारे में सीखा। कभी-कभी संबंधित कार्यों और डेटा को एक स्थान पर रखना वांछनीय होता है ताकि यह तार्किक और साथ काम करना आसान हो।

मान लीजिए, हमें एक आयताकार कमरे की लंबाई, चौड़ाई और ऊंचाई को संग्रहीत करने और इसके क्षेत्र और मात्रा की गणना करने की आवश्यकता है।

इस कार्य को संभालने के लिए, हम कार्यों के साथ-साथ तीन चर, कहते हैं, लंबाई, चौड़ाई और ऊंचाई बना सकते हैं calculateArea()और calculateVolume()

हालांकि, C ++, बल्कि अलग-अलग वैरिएबल और कार्यों बनाने की तुलना में, हम भी एक ही स्थान में इन संबंधित डेटा और कार्य (बनाकर लपेट कर सकते हैं वस्तुओं )। इस प्रोग्रामिंग प्रतिमान को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के रूप में जाना जाता है।
लेकिन इससे पहले कि हम वस्तुओं को बना सकें और उन्हें C ++ में उपयोग कर सकें, हमें पहले कक्षाओं के बारे में जानने की जरूरत है ।

सी ++ क्लास

एक वर्ग वस्तु के लिए एक खाका है।
हम एक वर्ग को एक घर के एक स्केच (प्रोटोटाइप) के रूप में सोच सकते हैं। इसमें फर्श, दरवाजे, खिड़कियां आदि के बारे में सभी विवरण शामिल हैं। इन विवरणों के आधार पर हम घर का निर्माण करते हैं। घर की वस्तु है।

एक कक्षा बनाएँ

कक्षा classके नाम के बाद कीवर्ड का उपयोग करके एक क्लास को C ++ में परिभाषित किया गया है।

कक्षा के शरीर को घुंघराले कोष्ठक के अंदर परिभाषित किया गया है और अंत में अर्धविराम द्वारा समाप्त किया गया है।

 class className ( // some data // some functions );

उदाहरण के लिए,

 class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );

यहाँ, हमने एक वर्ग को परिभाषित किया है जिसका नाम है Room

वर्ग के अंदर घोषित चर लंबाई, चौड़ाई और ऊंचाई को डेटा सदस्यों के रूप में जाना जाता है । और, कार्यों calculateArea()और एक वर्ग के सदस्य कार्यों के calculateVolume()रूप में जाना जाता है ।

C ++ ऑब्जेक्ट्स

जब एक वर्ग परिभाषित किया जाता है, तो केवल ऑब्जेक्ट के लिए विनिर्देश परिभाषित किया जाता है; कोई मेमोरी या भंडारण आवंटित नहीं किया गया है।

कक्षा में परिभाषित डेटा और एक्सेस फ़ंक्शंस का उपयोग करने के लिए, हमें ऑब्जेक्ट बनाने की आवश्यकता है।

C ++ में ऑब्जेक्ट को परिभाषित करने के लिए सिंटैक्स

 className objectVariableName;

हम Roomनिम्नानुसार वर्ग की वस्तुओं को बना सकते हैं (उपरोक्त उदाहरण में परिभाषित):

 // sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )

यहाँ, क्लास के दो ऑब्जेक्ट रूम 1 और रूम 2 Roomबनाए जाते हैं sampleFunction()। इसी प्रकार, ऑब्जेक्ट रूम 3 और रूम 4 में निर्मित होते हैं main()

जैसा कि हम देख सकते हैं, हम प्रोग्राम के किसी भी फंक्शन में एक क्लास की ऑब्जेक्ट बना सकते हैं। हम कक्षा के भीतर या अन्य कक्षाओं में भी एक वर्ग की वस्तुओं का निर्माण कर सकते हैं।

इसके अलावा, हम एक ही वर्ग से जितनी चाहें उतनी वस्तुएँ बना सकते हैं।

C ++ एक्सेस डेटा मेंबर और मेंबर फंक्शंस

हम एक .(डॉट) ऑपरेटर का उपयोग करके किसी वर्ग के डेटा सदस्यों और सदस्य कार्यों तक पहुंच सकते हैं । उदाहरण के लिए,

 room2.calculateArea();

यह ऑब्जेक्ट रूम 2 के लिए कक्षा के calculateArea()अंदर फ़ंक्शन को कॉल करेगा Room

इसी तरह, डेटा सदस्यों को इस रूप में एक्सेस किया जा सकता है:

 room1.length = 5.5;

इस स्थिति में, यह Room1 की लंबाई चर को आरंभ करता है 5.5

उदाहरण 1: C ++ प्रोग्रामिंग में ऑब्जेक्ट और क्लास

 // Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

आउटपुट

 कक्ष का क्षेत्रफल = 1309 कक्ष का आयतन = 25132.8

इस कार्यक्रम में, हमने Roomएक कमरे के क्षेत्र और मात्रा की गणना करने के लिए कक्षा और उसके ऑब्जेक्ट रूम 1 का उपयोग किया है।

इसमें main(), हमने कोड के साथ लंबाई, चौड़ाई और ऊंचाई के मान निर्दिष्ट किए हैं:

 room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;

हमने तब कार्यों को बुलाया calculateArea()और calculateVolume()आवश्यक गणना करने के लिए।

publicकार्यक्रम में कीवर्ड के उपयोग पर ध्यान दें । इसका मतलब है कि सदस्य सार्वजनिक हैं और कार्यक्रम से कहीं भी पहुँचा जा सकता है।

अपनी आवश्यकताओं के अनुसार, हम privateकीवर्ड का उपयोग करके निजी सदस्य भी बना सकते हैं । किसी वर्ग के निजी सदस्यों को केवल कक्षा के भीतर से ही पहुँचा जा सकता है। उदाहरण के लिए,

 class Test ( private:
  int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.

दूसरी ओर, बी और function2()कार्यक्रम में हर जगह से सुलभ हैं।

सार्वजनिक और निजी कीवर्ड के बारे में अधिक जानने के लिए, कृपया हमारे C ++ क्लास एक्सेस मॉडिफायर ट्यूटोरियल पर जाएं।

उदाहरण 2: C ++ कक्षा में सार्वजनिक और निजी का उपयोग करना

 // Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

आउटपुट

 कक्ष का क्षेत्रफल = 1309 कक्ष का आयतन = 25132.8

उपरोक्त उदाहरण पहले उदाहरण के लगभग समान है, सिवाय इसके कि वर्ग चर अब निजी हैं।

चूँकि चर अब निजी हैं, हम उनसे सीधे नहीं पहुँच सकते main()। इसलिए, निम्नलिखित कोड का उपयोग करना अमान्य होगा:

 // invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;

इसके बजाय, हम सार्वजनिक समारोह का उपयोग getData()समारोह मापदंडों के माध्यम से निजी चर प्रारंभ करने double len, double brthऔर double hgt

वस्तुओं और कक्षाओं के बारे में अधिक जानने के लिए, इन विषयों पर जाएँ:

  • सी ++ कंस्ट्रक्टर्स
  • किसी फ़ंक्शन से किसी ऑब्जेक्ट को कैसे पास और वापस करना है?

दिलचस्प लेख...