यहां, हम कुछ C प्रोग्राम लिखेंगे जो C++ में कंपाइल नहीं होंगे। हालांकि C++ को C का उत्तराधिकारी माना जाता है जिसमें इसकी सभी विशेषताएं हैं और C कोड के साथ संगतता है, लेकिन कुछ प्रोग्राम हैं जो C++ कंपाइलर के साथ कंपाइल नहीं होंगे या कंपाइलेशन त्रुटि देंगे।
ऐसे कुछ C प्रोग्राम की सूची जो C++ में कंपाइल नहीं होंगे:
घोषणा से पहले फ़ंक्शन कॉल - C++ में, घोषणा से पहले फ़ंक्शन कॉल कंपाइलेशन त्रुटि देता है। लेकिन यह C में ठीक काम करता है।
उदाहरण
#include <stdio.h>
int main() {
printHello();
return 0;
}
void printHello() {
printf("TutorialsPoint");
}
आउटपुट
TutorialsPoint
टाइपकास्टेड पॉइंटर्स का उपयोग - यदि हम C में पॉइंटर को void के रूप में घोषित करते हैं और फिर इस पॉइंटर का उपयोग अन्य डेटा वेरिएबल्स को इंगित करने के लिए करते हैं। यह C में कंपाइलर द्वारा किया जा सकता है लेकिन C++ में, इन पॉइंटर्स को टाइपकास्ट करने की आवश्यकता होती है।
उदाहरण
#include <stdio.h>
int main() {
void* ptr;
int* ptr2 = ptr;
return 0;
}
आरंभीकरण के बिना स्थिर मान घोषित करना - C में, आप किसी मान को दिए बिना स्थिर मान घोषित कर सकते हैं लेकिन C++ में ऐसा करने पर त्रुटि आती है।
उदाहरण
#include <stdio.h>
int main() {
const int x;
printf("%d", x);
return 0;
}
आउटपुट
0
सामान्य पॉइंटर के साथ const वेरिएबल का उपयोग - C++ में यह अनुमत नहीं है जबकि C const वेरिएबल के साथ सामान्य पॉइंटर के उपयोग की अनुमति देता है।
उदाहरण
#include <stdio.h>
int main(void) {
int const x = 3424;
int* cptr = &x;
printf("पॉइंटर का मान: %d\n", *cptr);
return 0;
}
आउटपुट
पॉइंटर का मान: 3424
विशिष्ट कीवर्ड्स को वेरिएबल नाम के रूप में उपयोग करना - C प्रोग्रामिंग भाषा में कुछ कीवर्ड्स को वेरिएबल नाम के रूप में उपयोग करना वैध है यानी C में कंपाइल हो जाएगा लेकिन C++ में कंपाइल नहीं होगा।
उदाहरण
#include <stdio.h>
int main(void) {
int class = 5;
printf("%d", class);
}
आउटपुट
5
ये वे कीवर्ड्स हैं जो C++ में शामिल हैं, कुछ और हैं new, delete, explicit, आदि।