के आत्म आरंभीकरण चेतावनी दी है की तरह कुछ कर रही द्वारा काटा गया है के बाद:से बचें/C++ सदस्यों
struct Person {
std::string first_name;
std::string last_name;
Person(const std::string &first_name_, const std::string &last_name_) :
first_name(first_name_),
last_name(last_name)
{}
};
प्रारंभकर्ता last_name(last_name)
कहाँ स्पष्ट रूप से होना चाहिए last_name(last_name_)
हैं वहाँ किसी भी तरह से मैं जीसीसी इस तरह के एक त्रुटि के बारे में चेतावनी बना सकते हैं (क्या किसी सदस्य का उपयोग स्वयं शुरू करने का कोई भी उपयोग केस है?)
या उन मामलों में बेहतर नामकरण सम्मेलन पर कोई सुझाव जहां कंस्ट्रक्टर तर्क फ़ील्ड के समान हैं।
सबसे व्यापक सम्मेलन की तरह "एम" (सदस्य) या "च" (क्षेत्र) एक पत्र के साथ सदस्यों उपसर्ग है। "MLastName" या "m_last_name" की तरह। यह न केवल इस विशिष्ट समस्या के कारण उपयोगी है, बल्कि यह भी कि आप तुरंत जानते हैं कि अगर कोई उपसर्ग है तो कोई सदस्य चर है। यह गलत होने की भी कम संभावना है; "_" प्रत्यय अभी भी स्वत: पूर्णता दोनों तर्क और सदस्य दोनों का सुझाव देने की अनुमति देता है। एक उपसर्ग के साथ यह अक्सर नहीं होता है। –
@ निकोससी। जब मैंने प्रोग्रामिंग शुरू की, तो मैं अन्य हंगेरी नोटेशन के साथ-साथ फ़ंक्शन पॉइंटर्स आदि के लिए m_pfnFoo जैसी चीज़ों का उपयोग करता हूं। फिर एक प्रयोग के रूप में मैंने इसे छुटकारा पाने का फैसला किया, और वास्तव में इसे कभी याद नहीं किया। मेरे पास यह धारणा है कि जब आपकी कक्षाओं को ध्यान से तैयार किया जाता है तो यह कोई लाभ नहीं देता है। – stijn
@stijn मुझे यह बहुत उपयोगी लगता है खासकर जब अन्य लोगों के कोड को पढ़ते हैं। यह इसे समझने में थोड़ा आसान बनाता है। मुझे अक्सर मेरे आईडीई की लुकअप कार्यक्षमता का उपयोग करता है, जो एक अच्छी बात है :) –