C++ क्लास और ऑब्जेक्ट उदाहरण सहित

⚡ स्मार्ट सारांश

क्लास और ऑब्जेक्ट C++ ये ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की नींव बनाते हैं, जहां एक क्लास डेटा और सदस्य कार्यों का एक ब्लूप्रिंट परिभाषित करती है, और एक ऑब्जेक्ट उस ब्लूप्रिंट से बनाया गया एक ठोस उदाहरण होता है।

  • 🔷 कक्षा का खाका: A C++ क्लास डेटा सदस्यों और सदस्य कार्यों को एक उपयोगकर्ता-परिभाषित प्रकार में बंडल करती है।
  • 🔑 पहुँच संशोधक: प्राइवेट, पब्लिक और प्रोटेक्टेड कीवर्ड यह नियंत्रित करते हैं कि क्लास सदस्यों तक कहां से पहुंचा जा सकता है।
  • 🧱 ऑब्जेक्ट इंस्टैंशिएशन: किसी क्लास से ऑब्जेक्ट बनाने के लिए क्लास-नाम-ऑब्जेक्ट-नाम सिंटैक्स का उपयोग किया जाता है।
  • 👉 सदस्य पहुंच: डॉट ऑपरेटर सार्वजनिक सदस्यों तक पहुंचता है, जबकि सदस्य फ़ंक्शन संग्रहीत डेटा में हेरफेर करते हैं।
  • ⚙️ कंस्ट्रक्टर्स: कंस्ट्रक्टर स्वचालित रूप से ऑब्जेक्ट को इनिशियलाइज़ करते हैं, और डिस्ट्रक्टर ऑब्जेक्ट के स्कोप से बाहर जाने पर उन्हें रिलीज़ करते हैं।
  • 🤖 एआई सहायता: GitHub Copilot और इसी तरह के AI सहायक एक छोटी टिप्पणी से क्लास परिभाषाओं और कंस्ट्रक्टरों का ढांचा तैयार करते हैं।

C++ कक्षा और वस्तु

क्लास क्या है?

A C++ क्लास डेटा और डेटा को मैनिपुलेट करने के लिए विधियों को एक में जोड़ता है। क्लास ऑब्जेक्ट के रूप भी निर्धारित करते हैं। क्लास में मौजूद डेटा और विधियों को क्लास मेंबर के रूप में जाना जाता है। क्लास एक उपयोगकर्ता-परिभाषित डेटा प्रकार है। क्लास के सदस्यों तक पहुँचने के लिए, हम क्लास के इंस्टेंस का उपयोग करते हैं। आप क्लास को ऑब्जेक्ट के ब्लूप्रिंट के रूप में देख सकते हैं।

एक क्लास घर का प्रोटोटाइप हो सकती है। यह दरवाजों, खिड़कियों, फर्शों आदि की स्थिति और आकार दर्शाती है। इन विवरणों के आधार पर हम एक घर का निर्माण कर सकते हैं। घर एक ऑब्जेक्ट बन जाता है। प्रोटोटाइप से कई घर बनाए जा सकते हैं। इसी प्रकार, एक क्लास से कई ऑब्जेक्ट बनाए जा सकते हैं।

C++ वस्तुओं के लिए ब्लूप्रिंट के रूप में क्लास

ऊपर दिए गए चित्र में, हमारे पास एक घर का प्रोटोटाइप है। इस प्रोटोटाइप से, हमने अलग-अलग विशेषताओं वाले दो घर बनाए हैं।

क्लास को एक ब्लूप्रिंट के रूप में ध्यान में रखते हुए, अगला चरण यह देखना है कि कोड में इसे कैसे घोषित किया जाता है।

वर्ग घोषणा

In C++क्लास को परिभाषित करने के लिए 'class' कीवर्ड का उपयोग किया जाता है। इसके बाद क्लास का नाम आता है। फिर क्लास बॉडी को कर्ली ब्रैकेट { } के बीच में रखा जाता है।

वाक्य - विन्यास

class class-name
   {
   // data
   // functions
   };
  • RSI कक्षा का नाम यह क्लास को दिया जाने वाला नाम है।
  • RSI तिथि यह क्लास का डेटा है, जिसे सामान्यतः वेरिएबल के रूप में घोषित किया जाता है।
  • RSI कार्यों ये क्लास फंक्शन हैं।

क्लास का नाम और बॉडी घोषित करने से स्वाभाविक रूप से यह सवाल उठता है कि प्रत्येक सदस्य का उपयोग कौन कर सकता है।

निजी और सार्वजनिक कीवर्ड

आपने इन दो कीवर्ड को अवश्य देखा होगा। वे एक्सेस मॉडिफायर हैं।

निजी:

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

जनता:

दूसरी ओर, public कीवर्ड डेटा/फ़ंक्शन को सार्वजनिक बनाता है। इन्हें क्लास के बाहर से एक्सेस किया जा सकता है।

एक बार क्लास बन जाने के बाद, उससे ऑब्जेक्ट बनाए जा सकते हैं, ठीक उसी तरह जैसे डेटा टाइप से वेरिएबल बनाए जाते हैं।

वस्तु परिभाषा

ऑब्जेक्ट क्लास से बनाए जाते हैं। क्लास ऑब्जेक्ट को उसी तरह घोषित किया जाता है जैसे वेरिएबल घोषित किए जाते हैं। क्लास का नाम पहले आना चाहिए, उसके बाद ऑब्जेक्ट का नाम। ऑब्जेक्ट क्लास टाइप का होता है।

वाक्य - विन्यास

class-name object-name;
  • RSI कक्षा का नाम यह उस क्लास का नाम है जिससे कोई ऑब्जेक्ट बनाया जाना है।
  • RSI वस्तु का नाम यह नए ऑब्जेक्ट को दिया जाने वाला नाम है।

किसी क्लास से ऑब्जेक्ट बनाने की इस प्रक्रिया को इन्स्टेन्शियशन (instantiation) कहा जाता है।

एक बार ऑब्जेक्ट बन जाने के बाद, इसके सार्वजनिक सदस्यों तक एक सरल ऑपरेटर के माध्यम से सीधे पहुँचा जा सकता है।

डेटा सदस्यों तक पहुँचना

किसी क्लास के पब्लिक सदस्यों तक पहुँचने के लिए, हम (.)dot ऑपरेटर का उपयोग करते हैं। ये पब्लिक एक्सेस मॉडिफ़ायर से चिह्नित सदस्य हैं।

उदाहरण 1

#include <iostream>
using namespace std;
class Phone {
public:
	double cost;   
	int slots; 
};
int main() {
	Phone Y6;        
	Phone Y7;        

	Y6.cost = 100.0;
	Y6.slots = 2;

	Y7.cost = 200.0;
	Y7.slots = 2;
	cout << "Cost of Huawei Y6 : " << Y6.cost << endl;
	cout << "Cost of Huawei Y7 : " << Y7.cost << endl;

	cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;
	cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;

	return 0;
}

आउटपुट:

C++ सार्वजनिक डेटा सदस्यों तक पहुंच उदाहरण 1 आउटपुट

कोड का स्क्रीनशॉट यहां दिया गया है:

C++ सार्वजनिक डेटा सदस्यों तक पहुंच उदाहरण 1 कोड

Code स्पष्टीकरण:

  1. इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल शामिल करें।
  2. हमारे कोड में std नामस्थान को शामिल करना ताकि इसे कॉल किए बिना इसके क्लासों का उपयोग किया जा सके।
  3. फ़ोन नामक एक क्लास घोषित करें.
  4. हम जिन चरों को बनाने जा रहे हैं उन्हें सार्वजनिक रूप से सुलभ के रूप में चिह्नित करने के लिए सार्वजनिक पहुंच संशोधक का उपयोग करना।
  5. डबल डेटा प्रकार की परिवर्तनीय लागत घोषित करें।
  6. स्लॉट्स नामक एक पूर्णांक चर घोषित करें.
  7. कक्षा का अंत.
  8. main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इसके बॉडी में जोड़ा जाना चाहिए।
  9. फ़ोन प्रकार का Y6 नामक ऑब्जेक्ट बनाएँ। इसे इंस्टेंटिएशन कहा जाता है।
  10. फ़ोन प्रकार का Y7 नामक ऑब्जेक्ट बनाएँ। इसे इंस्टेंटिएशन कहा जाता है।
  11. ऑब्जेक्ट Y6 का उपयोग करके क्लास फ़ोन के चर/सदस्य लागत तक पहुँचें। मान 100.0 पर सेट है। Y6 की लागत अब 100.0 पर सेट है।
  12. ऑब्जेक्ट Y6 का उपयोग करके क्लास फ़ोन के वेरिएबल/सदस्य स्लॉट तक पहुँचें। मान 2 पर सेट है। Y6 के लिए स्लॉट अब 2 पर सेट है।
  13. ऑब्जेक्ट Y7 का उपयोग करके क्लास फ़ोन के चर/सदस्य लागत तक पहुँचें। मान 200.0 पर सेट है। Y7 की लागत अब 200.0 पर सेट है।
  14. ऑब्जेक्ट Y7 का उपयोग करके क्लास फ़ोन के वेरिएबल/सदस्य स्लॉट तक पहुँचें। मान 2 पर सेट है। Y7 के लिए स्लॉट अब 2 पर सेट है।
  15. Y6 की लागत को अन्य पाठ के साथ कंसोल पर प्रिंट करें।
  16. Y7 की लागत को अन्य पाठ के साथ कंसोल पर प्रिंट करें।
  17. अन्य पाठ के साथ Y6 के लिए स्लॉट की संख्या प्रिंट करें।
  18. अन्य पाठ के साथ Y7 के लिए स्लॉट की संख्या प्रिंट करें।
  19. प्रोग्राम को सफलतापूर्वक पूरा होने पर एक मान लौटाना होगा।
  20. main() फ़ंक्शन के मुख्य भाग का अंत.

सार्वजनिक सदस्य बाहरी कोड के लिए खुले होते हैं, लेकिन निजी सदस्य बहुत सख्त पहुंच नियमों का पालन करते हैं।

निजी क्लास क्या है?

निजी के रूप में चिह्नित क्लास सदस्यों को केवल क्लास के भीतर परिभाषित फ़ंक्शन द्वारा ही एक्सेस किया जा सकता है। क्लास के बाहर परिभाषित कोई भी ऑब्जेक्ट या फ़ंक्शन ऐसे सदस्यों को सीधे एक्सेस नहीं कर सकता है। एक निजी क्लास सदस्य को केवल सदस्य और मित्र फ़ंक्शन द्वारा ही एक्सेस किया जाता है।

उदाहरण 2

#include <iostream>
using namespace std;
class ClassA {
public:
	void set_a(int val);
	int get_a(void);

private:
	int a;
};
int ClassA::get_a(void) {
	return a;
}
void ClassA::set_a(int val) {
	a = val;
}
int main() {
	ClassA a;
	a.set_a(20); 
	cout << "Value of a is: " << a.get_a(); 
	return 0;
}

आउटपुट:

C++ निजी वर्ग सदस्य उदाहरण 2 आउटपुट

कोड का स्क्रीनशॉट यहां दिया गया है:

C++ निजी वर्ग सदस्य उदाहरण 2 कोड

Code स्पष्टीकरण:

  1. इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल शामिल करें।
  2. अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
  3. ClassA नामक एक क्लास बनाएं.
  4. बनाए जाने वाले वर्ग सदस्य को सार्वजनिक रूप से सुलभ के रूप में चिह्नित करने के लिए सार्वजनिक पहुँच संशोधक का उपयोग करें।
  5. set_a() नामक फ़ंक्शन बनाएँ जो एक पूर्णांक मान val लेता है।
  6. get_a() नामक एक फ़ंक्शन बनाएँ.
  7. बनाए जाने वाले वर्ग सदस्य को निजी रूप से पहुंच योग्य के रूप में चिह्नित करने के लिए निजी पहुंच संशोधक का उपयोग करें।
  8. a नामक एक पूर्णांक चर घोषित करें.
  9. कक्षा का अंत.
  10. फ़ंक्शन get_a() तक पहुँचने के लिए क्लास नाम और स्कोप रिज़ॉल्यूशन ऑपरेटर का उपयोग करें। हम यह परिभाषित करना चाहते हैं कि फ़ंक्शन को लागू करने पर क्या होता है।
  11. फ़ंक्शन get_a() को लागू किए जाने पर चर a का मान लौटाना चाहिए।
  12. फ़ंक्शन get_a() की परिभाषा का अंत.
  13. फ़ंक्शन set_a() तक पहुँचने के लिए क्लास नाम और स्कोप रिज़ॉल्यूशन ऑपरेटर का उपयोग करें। हम यह परिभाषित करना चाहते हैं कि फ़ंक्शन को लागू करने पर क्या होता है।
  14. चर val का मान चर a को निर्दिष्ट करना.
  15. फ़ंक्शन set_a() की परिभाषा का अंत.
  16. main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
  17. ClassA का एक उदाहरण बनाएं और उसे a नाम दें।
  18. चर a को 20 का मान निर्दिष्ट करने के लिए उपरोक्त क्लास इंस्टैंस और फ़ंक्शन set_a() का उपयोग करें।
  19. कंसोल पर वेरिएबल a के मान के साथ कुछ टेक्स्ट प्रिंट करना। वेरिएबल a का मान get_a() फ़ंक्शन को कॉल करके प्राप्त किया जाता है।
  20. प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
  21. फ़ंक्शन main() के मुख्य भाग का अंत.

संरक्षित सदस्य निजी और सार्वजनिक क्षेत्रों के बीच स्थित होते हैं, जिससे विरासत के लिए एक महत्वपूर्ण क्षमता जुड़ जाती है।

संरक्षित वर्ग क्या है?

संरक्षित के रूप में चिह्नित वर्ग सदस्यों को निजी के रूप में चिह्नित लोगों की तुलना में एक लाभ होता है। उन्हें उनकी परिभाषा के वर्ग के भीतर फ़ंक्शन द्वारा एक्सेस किया जा सकता है। इसके अतिरिक्त, उन्हें व्युत्पन्न वर्गों से एक्सेस किया जा सकता है।

उदाहरण 3

#include <iostream>
using namespace std;
class ParentClass {
protected:
	int value;
};
class ChildClass : public ParentClass {
public:
	void setId(int x) {
		value = x;
	}
	void displayValue() {
	cout << "Value is: " << value << endl;
	}
};
int main() {
	ChildClass c;
	c.setId(21);
	c.displayValue();
	return 0;
}

आउटपुट:

C++ संरक्षित वर्ग सदस्य उदाहरण 3 आउटपुट

कोड का स्क्रीनशॉट यहां दिया गया है:

C++ संरक्षित वर्ग वंशानुक्रम उदाहरण 3 कोड

Code स्पष्टीकरण:

  1. इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल शामिल करें।
  2. अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
  3. ParentClass नामक एक क्लास बनाएं.
  4. बनाए जाने वाले वर्ग सदस्य को संरक्षित के रूप में चिह्नित करने के लिए संरक्षित एक्सेस संशोधक का उपयोग करें।
  5. value नामक एक पूर्णांक चर बनाएँ.
  6. कक्षा का अंत.
  7. ChildClass नामक एक नया वर्ग बनाएं जो ParentClass को विरासत में प्राप्त करता है।
  8. बनाए जाने वाले वर्ग सदस्य को बाल वर्गों के लिए पहुँच योग्य चिह्नित करने के लिए संरक्षित पहुँच संशोधक का उपयोग करें।
  9. setId() नामक फ़ंक्शन बनाएँ जो एक पूर्णांक मान x लेता है।
  10. चर x का मान चर मान को निर्दिष्ट करना।
  11. फ़ंक्शन setId() की परिभाषा का अंत.
  12. displayValue() नामक एक फ़ंक्शन बनाएँ.
  13. कंसोल पर value नामक वेरिएबल का मान अन्य टेक्स्ट के साथ प्रिंट करें।
  14. फ़ंक्शन displayValue() के मुख्य भाग का अंत.
  15. ChildClass नामक क्लास के मुख्य भाग का अंत.
  16. main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
  17. ChildClass का एक उदाहरण बनाएं और इसे c नाम दें।
  18. चर x को 21 का मान निर्दिष्ट करने के लिए उपरोक्त क्लास इंस्टैंस और फ़ंक्शन setId() का उपयोग करें।
  19. displayValue() नामक फ़ंक्शन को कॉल करने के लिए उपरोक्त क्लास इंस्टेंस का उपयोग करें।
  20. प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
  21. फ़ंक्शन main() के मुख्य भाग का अंत.

डेटा को स्टोर करने के अलावा, एक क्लास उन फंक्शन्स को भी समूहबद्ध करती है जो उस डेटा पर काम करते हैं।

क्लास सदस्य फ़ंक्शन

फ़ंक्शन हमें डेटा में हेरफेर करने में मदद करते हैं। क्लास सदस्य फ़ंक्शन को दो तरीकों से परिभाषित किया जा सकता है:

  • वर्ग परिभाषा के अंदर
  • वर्ग परिभाषा के बाहर

यदि किसी फ़ंक्शन को क्लास परिभाषा के बाहर परिभाषित किया जाना है, तो हमें स्कोप रिज़ॉल्यूशन ऑपरेटर (::) का उपयोग करना चाहिए। इसके साथ क्लास और फ़ंक्शन नाम भी होना चाहिए।

उदाहरण 4

#include <iostream>
#include <string>
using namespace std;
class Guru99
{
public:
	string tutorial_name;
	int id;
	void printname();
	void printid()
	{
		cout << "Tutorial id is: "<< id;
	}
};
void Guru99::printname()
{
	cout << "Tutorial name is: " << tutorial_name;
}
int main() {
	Guru99 guru99;
	guru99.tutorial_name = "C++";
	guru99.id = 1001;
	guru99.printname();
	cout << endl;
	guru99.printid();
	return 0;
}

आउटपुट:

C++ क्लास सदस्य फ़ंक्शन उदाहरण 4 आउटपुट

कोड का स्क्रीनशॉट यहां दिया गया है:

C++ क्लास सदस्य फ़ंक्शन उदाहरण 4 कोड

Code स्पष्टीकरण:

  1. इसके कार्यों का उपयोग करने के लिए हमारे प्रोग्राम में iostream हेडर फ़ाइल शामिल करें।
  2. अपने प्रोग्राम के फ़ंक्शन का उपयोग करने के लिए स्ट्रिंग हेडर फ़ाइल को इसमें शामिल करें।
  3. अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
  4. नाम से एक क्लास बनाएं Guru99.
  5. जिन क्लास सदस्यों को हम बनाने जा रहे हैं, उन्हें सार्वजनिक रूप से सुलभ के रूप में चिह्नित करने के लिए पब्लिक एक्सेस मॉडिफायर का उपयोग करें।
  6. tutorial_name नामक एक स्ट्रिंग वेरिएबल बनाएं.
  7. id नामक एक पूर्णांक चर बनाएँ.
  8. printname() नामक एक फ़ंक्शन बनाएँ। यह फ़ंक्शन क्लास परिभाषा में परिभाषित नहीं है।
  9. printid() नाम का एक फ़ंक्शन बनाएं। यह फ़ंक्शन क्लास परिभाषा के भीतर परिभाषित है। इसका बॉडी कोड भी क्लास परिभाषा के भीतर ही जोड़ा गया है।
  10. कंसोल पर अन्य टेक्स्ट के साथ वैरिएबल id का मान प्रिंट करें। ध्यान दें कि इसे printid() फ़ंक्शन के मुख्य भाग में जोड़ा गया है। यह केवल तभी निष्पादित होगा जब printid() फ़ंक्शन को कॉल किया जाएगा।
  11. फ़ंक्शन printid() के मुख्य भाग का अंत.
  12. कक्षा के मुख्य भाग का अंत Guru99.
  13. फ़ंक्शन printname() की परिभाषा का प्रारंभ.
  14. कंसोल पर अन्य टेक्स्ट के साथ वेरिएबल ट्यूटोरियल_नाम का मान प्रिंट करें। ध्यान दें कि इसे प्रिंटनाम() फ़ंक्शन के मुख्य भाग में जोड़ा गया है। यह केवल तभी निष्पादित होगा जब प्रिंटनाम() फ़ंक्शन को कॉल किया जाएगा।
  15. printname() फ़ंक्शन की परिभाषा का अंत.
  16. main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
  17. क्लास का एक इंस्टेंस बनाएं Guru99 और इसे गुरु99 नाम दिया गया।
  18. मान निर्दिष्ट करने के लिए उपरोक्त उदाहरण का उपयोग करें C++ चर tutorial_name के लिए.
  19. वेरिएबल id को 99 का मान निर्दिष्ट करने के लिए guru1001 इंस्टैंस का उपयोग करें।
  20. printname() फ़ंक्शन को कॉल करने के लिए guru99 इंस्टेंस का उपयोग करें।
  21. कंसोल पर एक नई रिक्त पंक्ति प्रिंट करने के लिए end (अंतिम पंक्ति) कमांड को कॉल करें।
  22. printid() फ़ंक्शन को कॉल करने के लिए guru99 इंस्टैंस का उपयोग करें।
  23. प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
  24. main() फ़ंक्शन के मुख्य भाग का अंत.

किसी ऑब्जेक्ट के निर्माण और उसके नष्ट होने पर दो विशेष सदस्य फ़ंक्शन स्वचालित रूप से चलते हैं।

निर्माता और विध्वंसक

एक कंस्ट्रक्टर क्या है?

कंस्ट्रक्टर विशेष फ़ंक्शन होते हैं जो ऑब्जेक्ट को इनिशियलाइज़ करते हैं। C++ संकलनकर्ता ऑब्जेक्ट बनाते समय कंस्ट्रक्टर को कॉल करें। कंस्ट्रक्टर क्लास सदस्यों को मान असाइन करने में मदद करते हैं। बेशक, यह तब होता है जब उन्हें कुछ मेमोरी स्पेस आवंटित किया जा चुका होता है।

डिस्ट्रक्टर क्या है?

दूसरी ओर, डिस्ट्रक्टर्स क्लास ऑब्जेक्ट्स को नष्ट करने में मदद करते हैं।

कंस्ट्रक्टर का नाम क्लास के नाम के समान होना चाहिए। कंस्ट्रक्टर का कोई रिटर्न प्रकार नहीं होता।

कंस्ट्रक्टर को क्लास बॉडी के अंदर या बाहर परिभाषित किया जा सकता है। यदि क्लास बॉडी के बाहर परिभाषित किया जाता है, तो इसे क्लास नाम और स्कोप रिज़ॉल्यूशन ऑपरेटर (::) के साथ परिभाषित किया जाना चाहिए।

उदाहरण 5

#include <iostream>  
using namespace std;
class ClassA {
public:
	ClassA() {
		cout << "Class constructor called"<<endl;
	}
	~ClassA() {
		cout << "Class destructor called"<<endl;
	}
};

int main() {
	ClassA a;
	int p = 1;
		if (p) {
			ClassA b; 
		}   
}

आउटपुट:

C++ कंस्ट्रक्टर और डिस्ट्रक्टर उदाहरण 5 आउटपुट

कोड का स्क्रीनशॉट यहां दिया गया है:

C++ कंस्ट्रक्टर और डिस्ट्रक्टर उदाहरण 5 कोड

Code स्पष्टीकरण:

  1. इसके फ़ंक्शन का उपयोग करने के लिए कोड में iostream हेडर फ़ाइल शामिल करें।
  2. अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
  3. ClassA नामक एक क्लास बनाएं.
  4. जिस सदस्य को हम बनाने जा रहे हैं उसे सार्वजनिक रूप से सुलभ के रूप में चिह्नित करने के लिए सार्वजनिक पहुंच संशोधक का उपयोग करें।
  5. क्लास के लिए एक कन्स्ट्रक्टर बनाएं.
  6. कन्स्ट्रक्टर को कॉल करने पर कंसोल पर प्रिंट करने के लिए टेक्स्ट। endl एक है C++ कीवर्ड, जिसका मतलब है अंतिम पंक्ति। यह माउस कर्सर को अगली पंक्ति पर ले जाता है।
  7. क्लास कन्स्ट्रक्टर के मुख्य भाग का अंत.
  8. क्लास के लिए एक डिस्ट्रॉक्टर बनाएं.
  9. जब डिस्ट्रक्टर को कॉल किया जाता है तो कंसोल पर प्रिंट करने के लिए टेक्स्ट। endl एक है C++ कीवर्ड, जिसका मतलब है अंतिम पंक्ति। यह माउस कर्सर को अगली पंक्ति पर ले जाता है।
  10. विध्वंसक के शरीर का अंत.
  11. कक्षा का अंत.
  12. main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
  13. एक क्लास ऑब्जेक्ट बनाएं और उसे a नाम दें। कन्स्ट्रक्टर को कॉल किया जाएगा।
  14. p नामक एक पूर्णांक चर बनाएं और उसे 1 का मान निर्दिष्ट करें।
  15. चर p का उपयोग करके एक if कथन ब्लॉक बनाएँ।
  16. एक क्लास ऑब्जेक्ट बनाएं और उसे b नाम दें। डिस्ट्रक्टर को कॉल किया जाएगा।
  17. if कथन के मुख्य भाग का अंत.
  18. main() फ़ंक्शन के मुख्य भाग का अंत.

अक्सर पूछे जाने वाले प्रश्न

क्लास एक उपयोगकर्ता-परिभाषित ब्लूप्रिंट है जो डेटा सदस्यों और सदस्य कार्यों को एक ही प्रकार में समूहित करता है। ऑब्जेक्ट उस क्लास से निर्मित एक ठोस उदाहरण है, जिसमें ब्लूप्रिंट द्वारा वर्णित डेटा की अपनी प्रतिलिपि होती है।

मुख्य अंतर डिफ़ॉल्ट एक्सेस में है: क्लास के सदस्य डिफ़ॉल्ट रूप से प्राइवेट होते हैं, जबकि एक अन्य क्लास के सदस्य प्राइवेट होते हैं। संरचना ये डिफ़ॉल्ट रूप से सार्वजनिक हैं। दोनों इनहेरिटेंस, कंस्ट्रक्टर और एनकैप्सुलेशन का समर्थन करते हैं। C++.

C++ यह तीन सामान्य कंस्ट्रक्टर प्रकारों का समर्थन करता है: बिना किसी तर्क के एक डिफ़ॉल्ट कंस्ट्रक्टर, एक पैरामीटराइज्ड कंस्ट्रक्टर जो सदस्यों को इनिशियलाइज़ करने के लिए मान स्वीकार करता है, और एक कॉपी कंस्ट्रक्टर जो उसी क्लास के मौजूदा ऑब्जेक्ट से एक नया ऑब्जेक्ट बनाता है।

फ्रेंड फंक्शन एक नॉन-मेंबर फंक्शन होता है जिसे क्लास के प्राइवेट और प्रोटेक्टेड मेंबर्स तक पहुंच प्रदान की जाती है। इसे क्लास के अंदर फ्रेंड कीवर्ड के साथ डिक्लेयर किया जाता है, लेकिन क्लास के बाहर इसे एक सामान्य फंक्शन की तरह ही डिफाइन किया जाता है।

यह पॉइंटर प्रत्येक नॉन-स्टैटिक मेंबर फंक्शन के अंदर उपलब्ध एक इम्प्लिसिट पॉइंटर है। यह उस ऑब्जेक्ट को इंगित करता है जिसने फंक्शन को कॉल किया है, जिससे कोड उस ऑब्जेक्ट के सदस्यों को संदर्भित कर सकता है और पैरामीटर और डेटा सदस्यों के बीच नामकरण संबंधी विवादों को हल कर सकता है।

एनकैप्सुलेशन डेटा और उस पर काम करने वाले फ़ंक्शन को एक ही क्लास के अंदर बंडल करता है, फिर प्राइवेट सदस्यों का उपयोग करके आंतरिक विवरणों को छुपाता है। पब्लिक सदस्य फ़ंक्शन एक नियंत्रित इंटरफ़ेस प्रदान करते हैं, जो डेटा को आकस्मिक या अनधिकृत पहुँच से सुरक्षित रखता है।

जी हां। एआई कोडिंग सहायक एक संक्षिप्त संकेत या टिप्पणी को डेटा सदस्यों, एक्सेस स्पेसिफायर, कंस्ट्रक्टर और सदस्य फ़ंक्शन सहित व्यावहारिक परिभाषाओं में परिवर्तित कर देते हैं। कोड को कंपाइल करने से पहले हमेशा जेनरेट किए गए एक्सेस लेवल और इनिशियलाइज़ेशन लॉजिक की समीक्षा करें।

हां. गिटहब कोपिलॉट टाइप करते समय यह क्लास डिक्लेरेशन, कंस्ट्रक्टर, गेटर और सेटर का सुझाव देता है। यह बार-बार दोहराए जाने वाले कोड को जल्दी से संभाल लेता है, हालांकि बिल्ड करने से पहले आपको मेंबर एक्सेस, कंस्ट्रक्टर लॉजिक और ऑब्जेक्ट के उपयोग की जांच अवश्य कर लेनी चाहिए।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: