निम्नलिखित कोड पर विचार करें:
#include <iostream>
using namespace std;
int main()
{
int x, y, i;
cin >> x >> y >> i;
switch(i) {
case 1:
// int r = x + y; -- OK
int r = 1; // Failed to Compile
cout << r;
break;
case 2:
r = x - y;
cout << r;
break;
};
}
जी ++ शिकायत करता है crosses initialization of 'int r'। मेरे प्रश्न हैं:
- क्या है
crosses initialization? - पहला इनिलाइज़र
x + yसंकलन क्यों पास करता है , लेकिन बाद वाला विफल हो गया? - तथाकथित समस्याएं क्या हैं
crosses initialization?
मुझे पता है कि मुझे इसका दायरा निर्दिष्ट करने के लिए कोष्ठक का उपयोग करना चाहिए r, लेकिन मैं यह जानना चाहता हूं कि, उदाहरण के लिए, गैर-पॉड को बहु-मामले स्विच स्टेटमेंट में क्यों नहीं परिभाषित किया जा सकता है।