निम्नलिखित कोड पर विचार करें:
#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
, लेकिन मैं यह जानना चाहता हूं कि, उदाहरण के लिए, गैर-पॉड को बहु-मामले स्विच स्टेटमेंट में क्यों नहीं परिभाषित किया जा सकता है।