मैं वैश्विक चर को खत्म करने के लिए कुछ कोड लिख रहा हूं और कुछ तृतीय पक्ष लाइब्रेरी संसाधनों के क्लास कन्स्ट्रक्टर/विनाशक हैंडल क्लीनअप को बनाया है, लेकिन मुझे कुछ कोड के बारे में चिंतित है जो कक्षा प्रारंभकर्ता सूची में किसी अन्य सदस्य से एक सदस्य को प्रारंभ करता है।क्या मैं बाद में सूची में प्रारंभकर्ता सूची में शुरू किए गए सी ++ वर्ग के सदस्यों का उपयोग कर सकता हूं?
class MyPodofoDocument {
public:
// generates pdf to stream
MyPodofoDocument(std::stringstream *pStringStream)
: device(pStringStream), document(&device)
{
}
private:
PoDoFo::PdfOutputDevice device;
PoDoFo::PdfStreamedDocument document;
PoDoFo::PdfPainter painter;
};
कोड है जो इस वर्ग का उपयोग करता है सभी विवरण लाइब्रेरी का उपयोग कर में जाने देखने की जरूरत नहीं है, लेकिन इससे पहले कि यह हिट तरह से मैं उन्हें छिपाने के लिए, यह अन्य सदस्यों प्रारंभ करने में सदस्यों के प्रयोग पर निर्भर करता है कन्स्ट्रक्टर का वास्तविक कोड ब्लॉक, जहां यह इस सूचक को मान्य करता है।
यह एक यूनिट टेस्ट कंकाल में काम करता है, इसलिए मेरा प्रश्न मूल रूप से है, "क्या यह ठीक है, पोर्टेबल और सुरक्षित है?"
इसके अलावा, यह पता लगाने के लिए कानूनी है कि अभी तक एक सदस्य बनने के लिए संदर्भ (यानी आप किसी सदस्य को संदर्भित कर सकते हैं यदि रिसीवर * ऑब्जेक्ट का उपयोग नहीं करता है, लेकिन केवल संदर्भ/सूचक)। –
पास करना कानूनी है, लेकिन अर्थात् गलत है, क्योंकि आप किसी ऐसे सूचक को पास कर रहे हैं जो अभी तक नहीं बनाया गया है। –
@AlexChamberlain: इसके साथ कुछ भी गलत नहीं है, लेकिन शायद एक डबल चेक की जरूरत है। – GManNickG