Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🟣 OOP  ·  Lesson 39

Constructors in C++

Constructor क्या है?

Constructor एक विशेष function है जो object बनते ही अपने आप चलता है, उसके data को सेट करने के लिए। इसका नाम class जैसा ही होता है और कोई return type नहीं। इसके बिना, नए object के members अप्रत्याशित values से शुरू होते।

Default constructor

Default constructor कोई arguments नहीं लेता और समझदार शुरुआती values देता है:

C++
#include <iostream>
using namespace std;
class Car {
public:
    string brand;
    int speed;
    Car() {                 // default constructor
        brand = "Unknown";
        speed = 0;
    }
};
int main() {
    Car c;                  // constructor yahan chalta hai
    cout << c.brand << " " << c.speed << "\n";
    return 0;
}
Output:
Unknown 0

Parameterized constructor

Object को विशिष्ट values से initialise करने को arguments लें:

C++
class Car {
public:
    string brand;
    int speed;
    Car(string b, int s) {    // parameterized
        brand = b;
        speed = s;
    }
};
int main() {
    Car c("Toyota", 80);
    cout << c.brand << " " << c.speed;   // Toyota 80
}
Output:
Toyota 80

Constructors overload करना

एक class में अलग parameters वाले कई constructors हो सकते हैं — compiler सही चुनता है:

C++
class Box {
public:
    int w, h;
    Box() { w = h = 1; }              // default
    Box(int side) { w = h = side; }   // square
    Box(int a, int b) { w = a; h = b; } // rectangle
};

Member initializer list

Body के अंदर assign करने के बजाय, आप members को colon list से सीधे initialise कर सकते हैं — तेज़, और const members तथा references के लिए ज़रूरी:

C++
class Point {
public:
    int x, y;
    Point(int a, int b) : x(a), y(b) { }   // initializer list
};

यहाँ x(a), y(b) members को body चलने से पहले initialise करता है।

आम गलतियाँ

  • Constructor को return type देना — इसका कोई नहीं होना चाहिए।
  • यह मानना कि दूसरा constructor जोड़ने के बाद भी मुफ़्त default constructor रहता है।
  • Constructor का नाम class से अलग रखना।
  • const members को initializer list के बजाय body में assign करना।
🏋️ अभ्यास

एक Student class लिखें जिसमें name और marks के लिए parameterized constructor, साथ में एक default constructor हो। दोनों तरीकों से objects बनाएँ और print करें। एक member initializer list version जोड़ें।

सारांश

  • Constructor object बनने पर अपने आप चलता है।
  • यह class का नाम साझा करता है और कोई return type नहीं रखता।
  • Default कोई arguments नहीं लेता; parameterized values लेता है।
  • Constructors अलग parameter सूचियों से overload हो सकते हैं।
  • Member initializer lists कुशल हैं और const/reference members के लिए ज़रूरी।

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

C++ में constructor क्या है?
Constructor एक विशेष member function है जो object बनने पर अपने आप चलता है, object के data को initialise करने के लिए इस्तेमाल होता है। इसका नाम class जैसा ही होता है और कोई return type नहीं, तो Car() Car नामक class का constructor है।
Default और parameterized constructor में क्या अंतर है?
Default constructor कोई arguments नहीं लेता और object को default values के साथ सेट करता है। Parameterized constructor arguments लेता है ताकि आप बनाते समय object को विशिष्ट values से initialise कर सकें, जैसे Car c("Toyota", 80);।
क्या C++ में एक class में एक से ज़्यादा constructors हो सकते हैं?
हाँ। एक class में कई constructors हो सकते हैं बशर्ते उनकी parameter सूचियाँ भिन्न हों — यह constructor overloading है। Compiler object बनाते समय आपके भेजे arguments के आधार पर मेल खाने वाला चुनता है, बिल्कुल सामान्य functions को overload करने जैसा।
C++ में member initializer list क्या है?
Member initializer list data members को सीधे initialise करती है, constructor body चलने से पहले, syntax Constructor() : member(value) { } से। यह body के अंदर assign करने से ज़्यादा कुशल है और const members तथा references के लिए ज़रूरी है।
C++ में अगर आप constructor परिभाषित न करें तो क्या होता है?
अगर आप कोई constructor न लिखें, compiler एक implicit default constructor देता है जो कोई विशेष initialisation नहीं करता। पर जैसे ही आप खुद कोई constructor परिभाषित करते हैं, वह स्वचालित default अब नहीं बनता, तो अगर अब भी चाहिए तो आपको स्पष्ट रूप से एक जोड़ना होगा।
← Back to C++ Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicDestructors in C++ आपकी प्रगति: 39 / 81 (48%) · Lesson 40 / 81 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें