मेरे पास एक वर्ग है जो इस तरह दिखता है:सी ++: एक सदस्य सूचक को शून्य करने के लिए शुरू करें?
class Foo
{
public:
Foo();
virtual ~Foo();
private:
Odp* bar;
};
मैं bar
को NULL
में प्रारंभ करना चाहता हूं। क्या यह करने का सबसे अच्छा तरीका है?
Foo::Foo() : bar(NULL)
{
}
इसके अलावा, क्या यह आवश्यक है कि विनाशक आभासी है? (यदि यह सत्य है, तो कन्स्ट्रक्टर वर्चुअल भी होना चाहिए?)
तर्कसंगत रूप से बेहतर है 'Foo :: Foo(): bar() {} '(नोट, नहीं' NULL'।) सबसे अच्छा पॉइंटर नहीं है, हालांकि। – GManNickG
यह बेहतर क्यों है? क्या 'नूल' अंतर्निहित है? –
"यह बेहतर क्यों है?" आपको 'NULL' की परिभाषा के लिए हेडर फ़ाइल शामिल करने की आवश्यकता नहीं है (जो कि वैसे भी' 0' है)। "क्या 'पूर्ण' अंतर्निहित है?" हाँ। 'बार()' मूल्य-प्रारंभिकता है; एक सूचक के मामले में, यह इसे शून्य करने के लिए शुरू होता है। –