एक बुनियादी सवाल का थोड़ा सा, लेकिन मुझे एक निश्चित उत्तर को ट्रैक करने में कठिनाई हो रही है।कक्षा क्षेत्रों को कैसे शुरू किया जा सकता है?
प्रारंभकर्ताओं में केवल तरीका सी ++ में कक्षा फ़ील्ड प्रारंभ करने के तरीकों के अनुसार, विधियों में असाइनमेंट के अलावा सूचीबद्ध हैं?
class Test
{
public:
Test(): MyField(47) { } // acceptable
int MyField;
};
class Test
{
public:
int MyField = 47; // invalid: only static const integral data members allowed
};
संपादित:
मामले में मैं गलत शब्दावली का उपयोग कर रहा है, यहाँ मैं क्या मतलब है विशेष रूप से, वहाँ एक struct प्रारंभकर्ता के साथ एक struct क्षेत्र प्रारंभ करने में एक अच्छा तरीका है? उदाहरण के लिए:
struct MyStruct { int Number, const char* Text };
MyStruct struct1 = {}; // acceptable: zeroed
MyStruct struct2 = { 47, "Blah" } // acceptable
class MyClass
{
MyStruct struct3 = ??? // not acceptable
};
C++ में रिक्त ब्रेसेस साथ struct उदाहरण सामान्य रूप से ध्यान केंद्रित किया नहीं किया जाएगा, लेकिन कचरा मूल्य होगा। अपवाद एक डीबग पर्यावरण या इसी तरह नियंत्रित स्थिति में हो सकता है। –
@SEinarsson - ओह ... क्या आपके पास इसका संदर्भ है? C++ में structs प्रारंभ करने के लिए पूरे वेब पर खाली ब्रेसिज़ की अनुशंसा की जाती है। –
रुको, अब मैं इतना निश्चित नहीं हूं। मैंने वेब पर लोगों को यह कहते हुए पाया है कि मैं गलत हूं लेकिन {} पैटर्न के लिए कोई औपचारिक परिभाषा नहीं है। निम्नलिखित प्रश्न का तात्पर्य है कि सी ++ में स्ट्रक्चर-क्लासेस में डिफॉल्ट कन्स्ट्रक्टर शून्य होते हैं, जब क्लास प्रारंभकर्ता में उपयोग किया जाता है (दूसरा उत्तर देखें) http://stackoverflow.com/questions/112085/is-this-c- संरचना- प्रारंभिक- चाल-सुरक्षित मेरी उपरोक्त टिप्पणी को तब तक नज़रअंदाज़ करें जब तक कि मैं इसे स्पष्ट नहीं कर सकता। –