में कॉन्स्टेंट स्टेटिक ऐरे शुरू करना मुझे पता चला है कि निम्नलिखित मान्य नहीं है।हैडर फ़ाइल
//Header File
class test
{
const static char array[] = { '1', '2', '3' };
};
इसे आरंभ करने के लिए सबसे अच्छी जगह कहां है?
में कॉन्स्टेंट स्टेटिक ऐरे शुरू करना मुझे पता चला है कि निम्नलिखित मान्य नहीं है।हैडर फ़ाइल
//Header File
class test
{
const static char array[] = { '1', '2', '3' };
};
इसे आरंभ करने के लिए सबसे अच्छी जगह कहां है?
//Header File
class test
{
const static char array[];
};
// .cpp
const char test::array[] = { '1', '2', '3' };
सबसे अच्छी जगह एक स्रोत फ़ाइल
// Header file
class test
{
const static char array[];
};
// Source file
const char test::array[] = {'1','2','3'};
आप पूर्णांक प्रकार प्रारंभ कर सकते हैं वर्ग घोषणा में की तरह तुम क्या करने की कोशिश की में हो सकता है; सभी अन्य प्रकारों को कक्षा घोषणा के बाहर शुरू किया जाना चाहिए, और केवल एक बार। इस प्रतिमान के बारे में
class test {
static const char array(int index) {
static const char a[] = {'1','2','3'};
return a[index];
}
};
एक जोड़े अच्छा बातें:
क्या यह नहीं कहना चाहिए "... कक्षा में * घोषणा * ..."? मैंने सोचा था कि 'एच' घोषणाएं थीं और' सी 'परिभाषाएं थीं, इसलिए एक पूर्णांक प्रकार का संदर्भ क्यों लेना है जिसे केवल शीर्षलेख में घोषित किया गया है संकलक त्रुटि में परिणाम:' परीक्षण :: SOME_INTEGER' के लिए अनिर्धारित संदर्भ? (मुझे एहसास है कि यह सुपर नाइट-पिक्य और पैडेंटिक लगता है, और मैं मुश्किल होने की कोशिश नहीं कर रहा हूं; मैं बस यह सुनिश्चित करना चाहता हूं कि मैं सही शब्दावली का उपयोग कर रहा हूं, इसलिए यदि मैं गलत हूं तो निश्चित रूप से मुझे सही करें)। – dwanderson
तुम हमेशा निम्न कर सकते हैं
अब, सी ++ 17 में, आप इनलाइन चर
A simple static data member(N4424):
struct WithStaticDataMember { // This is a definition, no outofline definition is required. static inline constexpr const char *kFoo = "foo bar"; };
अपने उदाहरण में उपयोग कर सकते हैं:
//Header File
class test
{
inline constexpr static char array[] = { '1', '2', '3' };
};
सिर्फ काम करना चाहिए
धन्यवाद, था सुनिश्चित नहीं है कि आप सदस्य के बाहर की तरफ कर सकते हैं। – user174084
परिभाषा में कोई स्थिर, कृपया। –
लोग ऐसे कोड को ऊपर क्यों उठा रहे हैं जो स्पष्ट रूप से संकलित नहीं होंगे? –