जब मैं सी ++ में इंटरफ़ेस कक्षाएं लिखते हैं, मैं निम्नलिखित 2 विकल्पों में से किसी का चयनएक अंतरफलक में विनाशकर्ता
class Interface
{
public:
virtual R1 f1(p11, p12 , ...) = 0;
...
virtual Rn fn(pn1, pn2 , ...) = 0;
virtual ~Interface() {}
}
या
class Interface
{
public:
virtual R1 f1(p11, p12 , ...) = 0;
...
virtual Rn fn(pn1, pn2 , ...) = 0;
virtual ~Interface() = 0;
}
Interface::~Interface() {}
पहले संस्करण लिखने के लिए कम है के साथ क्या करना है
दूसरा में आकर्षक है इंटरफ़ेस के फ़ंक्शन शुद्ध वर्चुअल
क्या कोई कारण है कि मुझे एक या दूसरी विधि (या शायद एक तिहाई) पसंद करनी चाहिए?
धन्यवाद
गलत। दूसरा मामला विनाशक को ओवरराइड करने के लिए बाध्य नहीं करता है: http://ideone.com/aw3kV। इसके अलावा, यह वाक्य * "इसलिए बेस क्लास को विनाशक को लागू करने के लिए मजबूर किया जाता है" * मुझे समझ में नहीं आता है। क्या आप इसे फिर से कर सकते हैं? – Nawaz
@ नवाज़ - क्षमा करें, खराब टाइपो। मेरा मतलब "व्युत्पन्न" था, न कि "आधार"। यह अब तय है। 5:00 बजे कोड लिखना बंद करना होगा। –