C++ में enum class को सामान्य enum से अधिक सुरक्षित क्यों माना जाता है?
सभी को नमस्कार! मैंने हाल ही में C++ सीखना शुरू किया है और एनुम (enumerations) के बारे में जाना। मुझे पता है कि उन्हें घोषित करने के दो तरीके हैं: पुराना अच्छा `enum` और नया `enum class` (C++11 से शुरू)। मैंने पढ़ा है कि `enum class` "अधिक सुरक्षित" है, लेकिन मुझे व्यवहार में अंतर पूरी तरह से समझ नहीं आया।
यहाँ एक उदाहरण है जो मैंने लिखा:
```cpp
enum Color { RED, GREEN, BLUE };
enum TrafficLight { RED, GREEN, YELLOW }; // त्रुटि: RED और GREEN का पुनः घोषणा
int main() {
Color c = RED;
TrafficLight t = RED; // मुझे उम्मीद थी कि यह काम करेगा, लेकिन...
return 0;
}
```
मुझे तुरंत समस्याएँ आईं: मैं समान एलिमेंट नामों वाले दो एनुम घोषित नहीं कर सकता, और कंपाइलर त्रुटि देता है। इसके अलावा, मैंने देखा कि मैं कुछ इस तरह लिख सकता हूँ:
```cpp
int x = RED; // यह काम करता है, लेकिन क्या यह सामान्य है?
```