इस समस्या में हम देखेंगे कि कंसोल में "Hello World" कैसे प्रिंट करें, लेकिन हम main फ़ंक्शन में कुछ भी नहीं लिख सकते।
इस समस्या को दो अलग-अलग तरीकों से हल किया जा सकता है। पहले दृष्टिकोण में हम एक ग्लोबल वेरिएबल बनाएंगे, फिर printf() फ़ंक्शन के लौटाए गए मान को उस वेरिएबल में स्टोर करेंगे। जब printf() निष्पादित होगा, तो यह प्रिंट हो जाएगा। बेहतर समझ के लिए कोड देखें।
उदाहरण 1: ग्लोबल वेरिएबल के साथ
#include <iostream>
using namespace std;
int a = printf("Hello World");
int main() {
// main खाली है
}
आउटपुट
Hello World
दूसरे दृष्टिकोण में हम एक क्लास बनाएंगे, और उस क्लास के कंस्ट्रक्टर का उपयोग करके लाइन प्रिंट करेंगे। फिर उस क्लास का ऑब्जेक्ट ग्लोबल सेक्शन में बनाएंगे। तो जब ऑब्जेक्ट बनेगा, यह कंस्ट्रक्टर को ऑटोमैटिकली कॉल करेगा, और लाइन प्रिंट हो जाएगी।
उदाहरण 2: क्लास कंस्ट्रक्टर के साथ
#include <iostream>
using namespace std;
class my_class {
public:
my_class() {
cout << "Hello World";
}
};
my_class my_obj; // ग्लोबल ऑब्जेक्ट
int main() {
// main खाली है
}
आउटपुट
Hello World
व्याख्या
| तरीका | कैसे काम करता है | निष्पादन समय |
|---|---|---|
| ग्लोबल वेरिएबल इनिशियलाइज़ेशन | main से पहले printf() निष्पादित होता है | प्रोग्राम स्टार्टअप (main से पहले) |
| ग्लोबल ऑब्जेक्ट कंस्ट्रक्टर | main से पहले कंस्ट्रक्टर चलता है | प्रोग्राम स्टार्टअप (main से पहले) |
अन्य तरीके
// 3. static वेरिएबल के साथ
static int dummy = (cout << "Hello World", 0);
// 4. टेम्पलेट मेटाप्रोग्रामिंग (C++11+)
template struct Print {
static void run() { cout << "Hello World"; }
};
template<> struct Print<0> { static void run() {} };
int main() { Print<1>::run(); }
चेतावनी: ये तकनीकें केवल शैक्षिक/पहेली उद्देश्यों के लिए हैं। वास्तविक कोड में main में लॉजिक लिखें।