Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🔵 Core C++  ·  Lesson 31

Default Arguments

Default arguments क्या हैं?

Default arguments आपको किसी parameter को पहले से एक value देने देते हैं, ताकि caller उसे छोड़ सके। अगर वे इसे छोड़ दें, default इस्तेमाल होता है; अगर value भेजें, वह जीतती है। यह कुछ parameters को प्रभावी रूप से वैकल्पिक बनाता है।

एक चलता उदाहरण

C++
#include <iostream>
using namespace std;

void greet(string name, string msg = "Hello") {
    cout << msg << ", " << name << "!\n";
}

int main() {
    greet("Amit");             // default msg use hota hai
    greet("Riya", "Welcome");  // default override
    return 0;
}
Output:
Hello, Amit!
Welcome, Riya!

Trailing नियम

Defaults सबसे दाईं parameters पर होनी चाहिए। एक बार किसी parameter की default हो, उसके दाईं ओर के सभी parameters की भी होनी चाहिए:

C++
void f(int a, int b = 2, int c = 3);   // OK
// void g(int a = 1, int b);           // ERROR: b ki default nahi

ऐसा इसलिए कि arguments बाएँ से दाएँ भरते हैं — आप बीच वाला छोड़कर बाद वाला नहीं दे सकते।

Default कहाँ रखें

अगर आपके function का अलग prototype हो, default वहाँ रखें (definition में नहीं):

C++
int power(int base, int exp = 2);   // default prototype mein

int power(int base, int exp) {      // yahan default nahi
    int r = 1;
    for (int i = 0; i < exp; i++) r *= base;
    return r;
}

दोनों जगह वही default रखना compile error है।

Overloading के साथ

Default arguments overloading से overlap कर सकते हैं, पर सावधान रहें — अगर कोई defaulted call दो functions से मेल खा सके, compiler ambiguity बताता है। किसी दिए calls के समूह के लिए एक या दूसरा तरीका पसंद करें।

आम गलतियाँ

  • बीच वाले parameter पर default रखना पर उसके बाद वालों पर नहीं।
  • Declaration और definition दोनों में default दोहराना।
  • Defaulted function और overload के बीच ambiguity बनाना।
  • यह मानना कि आप call के बीच में argument छोड़ सकते हैं — नहीं छोड़ सकते।
🏋️ अभ्यास

एक function printLine(char symbol = '-', int length = 20) लिखें जो दिए character की एक line print करे। इसे बिना arguments, एक argument, और दोनों के साथ call करें, और output देखें।

सारांश

  • Default arguments parameters को fallback values देते हैं, उन्हें वैकल्पिक बनाते हुए।
  • दी गई value default को override करती है; छोड़ी गई उसे इस्तेमाल करती है।
  • Defaults trailing (सबसे दाईं) parameters पर होनी चाहिए।
  • Default prototype में रखें, definition में न दोहराएँ।
  • Defaults को overloading से मिलाते समय ambiguity का ध्यान रखें।

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

C++ में default arguments क्या हैं?
Default arguments वे values हैं जो declaration में function parameters को दी जाती हैं, ताकि callers उन arguments को छोड़ सकें। अगर caller उन्हें छोड़ दे, defaults इस्तेमाल होते हैं; अगर values दें, वे defaults को override करती हैं। यह कुछ parameters को प्रभावी रूप से वैकल्पिक बनाता है।
C++ में default arguments कैसे काम करते हैं?
आप function header में parameter को value देते हैं, जैसे void greet(string msg = "Hi")। greet() call करना "Hi" इस्तेमाल करता है, जबकि greet("Hello") आपकी value इस्तेमाल करता है। Compiler किसी भी छूटे trailing arguments को उनके defaults से भर देता है।
क्या C++ में किसी भी parameter की default value हो सकती है?
Defaults सबसे दाईं (trailing) parameters को दी जानी चाहिए। एक बार किसी parameter की default हो, उसके बाद हर parameter की भी होनी चाहिए। ऐसा इसलिए कि arguments बाएँ से दाएँ मिलाए जाते हैं, तो आप बीच वाला नहीं छोड़ सकते।
Default arguments declaration में हों या definition में?
अगर prototype हो तो default function declaration में रखें, और definition में न दोहराएँ। दोनों जगह वही default देना error है, तो जब function परिभाषित होने से पहले declare हो तब declaration चुनें।
Default arguments और function overloading में क्या अंतर है?
Default arguments एक function को कम arguments वाले calls को defaults भरकर संभालने देते हैं, जबकि overloading अलग argument सूचियों के लिए अलग functions देता है। Defaults वैकल्पिक values के लिए सरल हैं; overloading तब चाहिए जब व्यवहार या types सच में भिन्न हों।
← 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 दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicInline Functions आपकी प्रगति: 31 / 81 (38%) · Lesson 32 / 81 आगे बढ़ें →

यह lesson कैसा लगा?

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

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

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

▶ CodingEasily on YouTube

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

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

▶ Channel subscribe करें