क्या आपको कक्षा के अंदर या बाहर enums घोषित करना चाहिए यदि कहा गया enums केवल वर्ग सदस्य कार्यों में उपयोग किया जाता है?क्या आपको कक्षा के अंदर या बाहर enums घोषित करना चाहिए?
namespace nspace
{
// need to append OC, as this pollutes the current namespace
enum OUTSIDE_CLASS {OC_POINTS, OC_LINES, OC_LINE_LOOP, :::};
enum OTHER_ENUM {OE_POINTS};
class VertexBuffer
{
public:
enum INSIDE_CLASS {POINTS, LINES, LINE_LOOP, :::};
void foo(OUTSIDE_CLASS e);
void bar(INSIDE_CLASS e);
}
};
// usage
nspace::VertexBuffer v;
v.foo(nspae::VB_POINTS);
v.bar(nspace::VertexBuffer::POINTS); // more pedantic
सभी [कोडिंग-शैली] प्रश्नों के साथ, जवाब "यह निर्भर करता है।" –
किसी के पास इस से थोड़ा अधिक अंतर्दृष्टि हो सकती है, लेकिन मेरी रणनीति हमेशा कुछ खुलासा नहीं करती है जब तक कि इसे उजागर करने की आवश्यकता न हो। (दूसरे शब्दों में, अगर यह आंतरिक रूप से उपयोग किया जाता है, तो इसे आंतरिक रखें।) – Corbin
सामान्य रूप से कोडिंग शैली के प्रश्नों के साथ, कोई निश्चित उत्तर नहीं है।वैश्विक दायरे को प्रदूषित करना आम तौर पर विवादित घोषणाओं के जोखिम के कारण एक अच्छा विचार नहीं है, लेकिन यदि आप अपने "अपने" नामस्थान में रहते हैं, तो यह कड़ाई से वरीयता का मामला है। –