की तरह एक निरंतर अभिव्यक्ति में प्रकट नहीं कर सकते हैं मेरे पास है कुछ स्थिर स्थिरांक सदस्योंक्यों स्थिर स्थिरांक सदस्यों के स्विच '
ज
class MyClass : public MyBase
{
public:
static const unsigned char sInvalid;
static const unsigned char sOutside;
static const unsigned char sInside;
//(41 more ...)
}
सीपीपी
const unsigned char MyClass::sInvalid = 0;
const unsigned char MyClass::sOutside = 1;
const unsigned char MyClass::sInside = 2;
//and so on
के निम्नलिखित घोषणा पर
unsigned char value;
...
switch(value) {
case MyClass::sInvalid : /*Do some ;*/ break;
case MyClass::sOutside : /*Do some ;*/ break;
...
}
: कुछ बिंदु मैं की तरह एक स्विच में उन लोगों के मूल्य का उपयोग करना चाहते
लेकिन मैं निम्नलिखित संकलक त्रुटि मिलती है: त्रुटि: 'MyClass :: sInvalid' एक निरंतर अभिव्यक्ति में प्रकट नहीं कर सकते हैं।
मैं अन्य स्विच नहीं कर सकते-दिखाई-निरंतर-सामान पढ़ लिया है और नहीं के बाद से मैं क्यों उन static const unsigned char
निरंतर अभिव्यक्ति नहीं कर रहे हैं नहीं मिलता है मेरे लिए एक जवाब मिला।
मैं जीसीसी 4.5 का उपयोग कर रहा हूं।
गलती से -1'd। आपको यह निर्दिष्ट करना चाहिए कि प्रारंभिक ** ** परिभाषा ** कक्षा परिभाषा के अंदर होना चाहिए, केवल हेडर नहीं।यदि आप उन्हें शीर्षलेख में प्रारंभ करते हैं, लेकिन कक्षा के बाहर, आपको लिंक त्रुटियां मिलेंगी। –
@LuchianGrigore: ठीक है, मैंने यह स्पष्ट किया है। वैध समाधान के लिए – jpalecek
+1, लेकिन मुझे अभी भी एक चीज बेहतर है। –