Constructor क्या है ये कितने प्रकार के होते हैं सीखें Practical सहित 

What is Constructor in C++ in Hindi

C++ में Constructor एक विशेष Member function होते हैं जो Object oriented programming में महत्त्वपूर्ण भूमिका निभाते है। 
जब आप एक Class के एक Object का निर्माण करते हैं तब यह स्वत: ही Call हो जाता है अर्थात आपको इसे Call करने की आवश्यकता नहीं होती है।
इसका नाम Class के नाम के समान है और यह कोई value, return नहीं करता।

Constructors का Use object की initial values को Set करने तथा कोई भी आवश्यक resource allocate करने में होता है।

एक Constructor का प्राथमिक उद्देश्य यह यह सुनिश्चित करना होता है कि object को Use करने से पहले उसे सही तरीके से Initialize किया गया है।

Objects को विभिन्न तरीकों से Initialize करने के लिए आपके पास विभिन्न Parameter वाले कई Constructor हो सकते हैं।

यदि आप एक Constructor नही लिखते तो Compiler आपको एक Default constructor देता है।

Definition of Constructor in C++ in Hindi

"Object के Automatically Initialization के लिए एक विशेष Member function का Use किया जाता है जिसे Constructor कहते हैं। Constractor एक ऐसा Member function है जो स्वयं से संबंधित Object के बनने पर अपने Execute हो जाता है"

Syntax of Constructor in C++
class-name (){
        //Body of constructor 
    }

ऊपर Syntax में class-name, Constructor का नाम है Body of constructor में वह Code लिखा जाएगा जो Constructor के स्वत: Call (Class के Object के निर्माण होने पर) होने पर Execute होगा 

Features of Constructor in C++ in Hindi

एक Constructor की निम्न विशेषताएं होते हैं
1) जब Object का निर्माण किया जाता है तब Constructor स्वत: ही Call हो जाते हैं।

2) इनके return type नहीं होते इसलिए यह कोई भी value rerurn रिटर्न नहीं कर सकते

3) Constructor का नाम Class के समान होते हैं।


Type of constructor in C++ in hindi

C++ में Constructor के विभिन्न प्रकार होते है जो निम्न है।
1) Default constructor
2) Parameterized Constructor
3) Copy Constructor

Default constructor

C++, में एक Default constructor वह Constructor है जो कोई Arguments या  Paraneters नही लेता।

जब एक Object को बिना Arguments Pass किए बनाया जाता है तब यह Constructor स्वत: ही Call हो जाता है अर्थात इसे आपको Call करने की जरुरत नहीं होती है।

यदि आपने अपने Program में कोई भी Constructor Define नही किया है तब भी Compiler एक Default constructor प्रदान करता है जो Objects को Default values अर्थात zeros या nulls के साथ that Initializes करता है।

Syntax:
className() {
    // Default constructor body 
    }

Program for Default constructor 
#include<iostream>
using namespace std;
class Message{
public:
//Default constructor 
Message(){
cout<<"This is default constructors"<<endl;
cout<<"It doesn't take any parameters and does not return any values"<<endl;
        }
};
int main(){
Message obj;
return 0;
}
Output:
This is default constructors
It doesn't take any parameters and does not return any values 

Explanation:
1) ऊपर Program में Message नाम से एक Class define किया गया है 

2) इस Class के अंदर एक Default constructor Define किया जाता है जो कोई भी Parameters नही लेता और जब यह Call होता है तो Message print करता है

3) main function में Class, Message का एक Object, 'obj' नाम से बनाया जाता है।
जैसे ही object का निर्माण होता है Constructor, Automatically call हो जाता है।

Default constructors यह सुनिश्चित करता है कि Objects को सही तरीके से Initialize किया जाए।
 
ये Objects के Arrays, Containers के निर्माण के लिए आवश्यक है जहां पर Objects को Individual रूप से Initialize करना संभव नहीं है।

Parameterized Constructor 

C++ में एक Parameterized constructor वह Constructor है जो एक या अधिक Arguments या Parameters लेता है।

यह एक Objects के निर्माण के दौरान उसे विशेष Values के साथ Initialize करने की अनुमति देता है।

यह Default constructor से अलग है क्योंकि default constructor कोई parameters नही लेता और Objects को default values के साथ Initialize करता है।

एक Parameterized constructor आपको विषेश values के साथ Object को Initialize करने देता है।

इस प्रकार के Constructor आपको Object के निर्माण करते समय विभिन्न प्रकार की Values Set करने की अनुमति देता है, जो इसे ज्यादा लचीला और नियंत्रित बनाता है।

आपके पास कई विभिन्न Parameters के Sets के साथ कई Parameterized constructors हो सकतें है इसका मतलब है कि आपके द्वार प्रदान किए जा रहे Values के आधार पर आप कई तरीकों से Objects को Initialize कर सकते हैं।

Syntax:
ClassName(Parameter list){
// Parameterized constructor body

Program Parameterized constructor 
#include<iostream>
using namespace std;
class Student{
int roll_num;
string name;
public:
//Definition of parameterized constructor 
Student(int rn, string n){
roll_num = rn;
name = n;
  }
void Displaydata(){
cout<<"Rollnumber: "<<roll_num<<endl;
cout<<"Name: "<<name<<endl; }
};
int main(){
Student std1(101, "Rohit");
Student std2 (102, "Anil");
std1.Displaydata();
std2.Displaydata();
return 0;
}  
Output:
Rollnumber: 101
Name: Rohit
Rollnumber: 102
Name: Anil

Explanation:
1) Class को Define करना: 
Student class के पास दो Data members roll_num और name है।

2) Parameterized Constructor: 
Student(int rn, string n){
roll_num = rn;
name = n;
  }
Parameterized Constructor 
Student(int rn, string n), Student के roll_num और name को Arguments की तरह values pass करके initialize किया जाता है 

3) Member Function: 
Displaydata function, Students की roll_number और name को Print करता है।

4) Object का निर्माण करना: 
main function, में दो Student objects (std1 और std2) का निर्माण किया जाता है।

5) Displaydata Function को Call करना: 
अंत में Displaydata function को प्रत्येक Object के लिए उसके Details को Print करने के लिए call किया जाता है।

Copy Constructor

C++ में एक Copy constructor, एक विशेष Function होते हैं जो पहले से मौजूद object की Copy करने के द्वारा एक नए Object का निर्माण करता है।
Copy Constructor यह सुनिश्चित करने मे मदद करता है कि नए object उसी Value को प्राप्त करे जो Original object में है।
इस Constructor को उस समय Call किया जाता है जब आप एक ऑब्जेक्ट की Copy करते है, एक Object को Value के द्वारा एक function को Pass करते हैं, एक function से Object return करते हैं।

यह उसी Class के अन्य Object को Argument की तरह लेता है।
यदि आप एक कॉपी कंस्ट्रक्टर नहीं लिखते, तब C++ आपके लिए एक बना देता है।

Syntax:
class-name(const class-name & objectName)
{
//Body of Copy constructor 
}

Program for Copy constructor
#include<iostream>
using namespace std;
class Student{
int roll_num;
string name;
public:
//Definition of paramerized constructor 
Student(int rn, string n){
roll_num = rn;
name = n;
  }
//Definition of Copy Constructor
Student(const Student &ref){
roll_num = ref.roll_num;
name = ref.name;
}
void Displaydata(){
cout<<"Rollnumber: "<<roll_num<<endl;
cout<<"Name: "<<name<<endl; }
};
int main(){
//Using the paramerized constructor to create an object
Student std1(101, "Rohit");
std1.Displaydata();

//Using the copy constructor to create an object
Student std2=std1;
std2.Displaydata();
return 0;
}
Output:
Rollnumber: 101
Name: Rohit
Rollnumber: 101
Name: Rohit

Explaination:
1) Class को Define करना: 
Student नामक class Define किया जाता है जिसमे दो Data members roll_num और name है।

2) Parameterized सी define करना:
Student(int rn, string n), 
Parameterized Constructor Student के roll_num और name को arguments की तरह values pass करके initialize किया जाता है

3) Copy constructor define करना:
Student(const Student &ref){
roll_num = ref.roll_num;
name = ref.name;
}
Copy constructor `Student(const Student &ref)` पहले से मौजूद Student object से roll_num और name की Copy करके एक नया Object 'ref' बनाता है अतः पहले से उपस्थित Object के विवरण नए Object में भी आ जाते हैं।

3) Member Function: 
Displaydata function, Students की roll_number और name को Print करता है।

4) Main function:
Student std1(101, "Rohit")
इसमें एक Object std1, को दो Values (101, "Rohit") के साथ बनाया जाता है।
Student std2=std1;
इसमें Copy constructor का Use करके, std1 की copy के रूप में std2 object का निर्माण किया जाता है 
जब इन objects के द्वारा Displaydata को Call किया जाता है तब ये दोनों std1 और std2 समान value को प्रदर्शित करते है। 

Features/Uses of Constructor in C++ in Hindi

1) जब Object का निर्माण होता है तब Constructors का Use उसे initialize करने तथा Initial value Set करने के लिए किया जाता है।

2) Constructors यह सुनिश्चित करते हुए Object के लिए Memory allocate करता, कि Objects के पास उनके Data को Store करने के लिए पर्याप्त Space हो।

3) यदि Object को कोई विशेष Value नही दे जाए तो Costructor उसे Default value देकर Initialize करता है।

4) Constructors यह सुनिश्चित करते है कि Error को रोकने के लिए Object का निर्माण valid Data (Initial value) के साथ हो।

5) Copy constructors पहले से मौजूद object की copy करके नए Object का निर्माण करता है।

6) Constructors, Inheritance में महत्त्वपूर्ण भूमिका निभाता है।

7) Constructors, Polymorphism behaviour को सक्रिय करते हुए विभिन्न Classes में objects का निर्माण करने के लिए Use किया हो सकता है।

8) आप विभिन्न तरीकों से Object को Initialize करने के लिए विभिन्न Parameters के साथ कई Constructors का निर्माण कर सकते हैं।

9) Constructors, Object बनाने का एक साफ़ और सरल तरीका प्रदान करते हुए  एक Class के आंतरिक विवरणों को छुपाने के लिए मदद करता है।

Multiple constructor in a class in C++ in hindi


Program for Multiple constructor in a class 
#include<iostream>
using namespace std;
class Student{
int roll_num;
string name;
public:
//Definition of default constructor 
Student(){
roll_num = 0;
name = "unknown";
}
//Definition of paramerized constructor 
Student(int rn, string n){
roll_num = rn;
name = n;
  }
//Definition of Copy Constructor
Student(const Student &ref){
roll_num = ref.roll_num;
name = ref.name;
}
void Displaydata(){
cout<<"Rollnumber: "<<roll_num<<endl;
cout<<"Name: "<<name<<endl; }
};
int main(){
//Using the paramerized constructor to create an object
Student std1(10, "Anil");
std1.Displaydata();

//Using the copy constructor to create an object
Student std2=std1;
std2.Displaydata();
return 0;
}
Output:
Rollnumber: 10
Name: Anil 
Rollnumber: 10
Name: Anil

 Related Posts

> C++ क्या है? उसके इतिहास, गुण, उपयोग, फायदे और नुकसान 

> Basic structure of C++ Program 

> C++ में Tokens क्या है? और उसके प्रकार

> C++ Variables क्या है?, उसके प्रकार, उसे कैसे Declare, Define करते हैं

> C++ में Constants क्या है? उसके प्रकारों की संपूर्ण जानकारी

> C++ में Basic Input और Output (cin,cout,cerr) की जानकारी

> Data type in C++ की संपूर्ण जानकारी 

> C+ में Operators और उसके प्रकार जानें Practical सहित 

> C++ में Conditional और उसके प्रकारों को जानें Practical सहित 

> C++ में Looping statements और उसके प्रकार Practical सहित 

> C++ में Jump Statements और उसके प्रकारों की संपूर्ण जानकारी Practical सहित

> C++ में Array क्या है? और उसके प्रकारों की जानकारी Practical सहित

> C++ में Function क्या है उसके प्रकार, उपयोग प्रोग्राम सहित 

> C++ में Structure क्या है Practical सहित

> OOPs Concepts in C++ in Hindi- C++ में OOPs के बारे में

> Oops के फायदे और नुकसान की जानकारी 

> OOP और POP के बीच अंतर 

> C++ में Class और Object की सम्पूर्ण जनकारी

> C++ में Array of Objects क्या है? 

> C++ में Pointers, Pointer to an objects, Pointer to an Array की संपूर्ण जानकारी हिंदी में।

C++ में Passing objects क्या है

> C++ में Reference और Type Casting की संपूर्ण जानकारी

> C++ में Access specifier की संपूर्ण जानकारी 

> C++ में Static Data Members और Member Functions के बारे में Practical सहित 

> C++ में Memory allocation और Memory management operators (new और delete) Practical सहित 

> Friend Function in C++ in Hindi 

> Friend Class in C++ in Hindi Practical सहित 

> Inline function in C++ in Hindi 

> Function Overloading in C++ in Hindi Practical सहित 

> Operator Overloading in C++ in Hindi PRACTICAL सहित 

> C++ में Destructor क्या है ?उसकी संपूर्ण जानकारी

> C++ मे Inheritance क्या है उसके प्रकारों को जानें प्रोग्राम सहित

> C++ में Polymorphism क्या है? और उसके प्रकारों को जानें

> C++ में Virtual function की संपूर्ण जानकारी

> C++ में File handling की संपूर्ण जानकारी 

> C++ में Exception handling  की संपूर्ण जानकारी