C++ 11

2012-10-12 17 views
11

एक स्थिर स्थिरांक वेक्टर वर्ग के सदस्य मैं एक स्थिर स्थिरांक वेक्टर वर्ग के सदस्य initializ की जरूरत initializ के लिए कैसे ... मैंC++ 11

static const vector<string> vr ({"2", "3", "4"}); 

static const vector<string> vr = {"2", "3", "4"}; 

static const vector<string> vr {"2", "3", "4"}; 

की कोशिश की है कि वे काम न ....

मैं mingw के साथ ग्रहण का उपयोग कर रहा हूं (मैंने C++ 11 सक्षम किया है)

+0

परिभाषित स्थैतिक चर और बाहर काम करते हैं - –

उत्तर

7

अपनी कक्षा परिभाषा में अपने स्थिर सदस्यों को घोषित करें, लेकिन उन्हें बाहर परिभाषित करें।

class MyClass { 
public: 
    // declaration 
    static const std::vector<std::string> vec; 
}; 

// definition 
const std::vector<std::string> MyClass::vec = ...; 

यह करने के लिए अपवाद नहीं है अभिन्न प्रकार,

class MyClass { 
public: 
    // declaration and definition 
    static const int MAX_BURRITOS = 5; 
}; 
+0

अभिन्न प्रकारों के लिए अपवाद केवल तब लागू होता है जब मान कभी भी ओडीआर-प्रयुक्त नहीं होते हैं। – ildjarn

9

स्टेटिक चर प्रारंभ, वर्ग के बाहर किया इस तरह है: वर्ग के अंदर

class Example 
{ 
    static const vector<string> vr; 
    // ... 
}; 

const vector<string> Example :: vr ({"hello", "world"}); 
+0

क्या 'स्थिर' सदस्य समारोह के साथ 'const'' vector' प्रारंभ करने का कोई तरीका है? – phoenix

संबंधित मुद्दे