मौजूदा कोड बेस (डर और भयावहता) पर पीसी-लिंट का उपयोग शुरू करना।सी ++ इंटरफेस जैसी कक्षाओं के लिए विनाशक
class IBatch
{
public:
virtual void StartBatch() =0;
virtual int CommitBatch() =0;
};
कौन सा है जब एक और वर्ग इस से निकला एक इंटरफेस की तरह इसका इस्तेमाल करने
base class 'IBatch' has no destructor
तो, सवाल:
एक बात है कि इसके बारे में शिकायत निम्नलिखित है जब आप बनाने इंटरफ़ेस उपरोक्त की तरह कक्षाएं, क्या आप हमेशा वर्चुअल विनाशक शामिल करते हैं? क्यूं कर? (यह एक शैली या एक कोडिंग त्रुटि है?)
संपादित करें: ने कहा है चाहिए कि मैं उम्मीद या उपयोगकर्ता IBatch की संहार करना चाहते हैं नहीं है, वे एक सेवा के एक उपभोक्ता केवल कुछ करने के लिए इस इंटरफेस के माध्यम से कर रहे हैं, बाहरी कार्यान्वयन वर्ग (यदि इससे कोई फर्क पड़ता है)
जैसा कि अन्य ने कहा, आपको वर्चुअल डीटीओआर की आवश्यकता है। जैसे ही साइड नोट: COM इंटरफेस इसके बजाय 'रिलीज़()' पर भरोसा करते हैं, जो एक वर्चुअल विधि है जो "उचित" व्युत्पन्न डीटीओआर पर रीडायरेक्ट कर सकती है। – peterchen