मैंने हमेशा सोचा है कि हम कोड क्यों करते हैं
virtual void MyFunction() = 0;
और नहीं
pure virtual void MyFunction();
क्या इस निर्णय के आधार का संदर्भ है?
मैंने हमेशा सोचा है कि हम कोड क्यों करते हैं
virtual void MyFunction() = 0;
और नहीं
pure virtual void MyFunction();
क्या इस निर्णय के आधार का संदर्भ है?
जवाबों:
से डिजाइन और सी के विकास ++ Bjarne Stroustrup - - एडिसन-वेस्ले (ISBN 0-201-54330-3) - अध्याय 13.2.3:
= 0
एक नए कीवर्ड को पेश करने के स्पष्ट विकल्प के लिए उत्सुक वाक्यविन्यास को चुना गया थाpure
याabstract
क्योंकि उस समय मैंने नए कीवर्ड को स्वीकार करने का कोई मौका नहीं देखा था। अगर मैंने सुझाव दिया होताpure
, तो रिलीज़ 2.0 ने अमूर्त कक्षाओं के बिना भेज दिया होता। एक अच्छे वाक्यविन्यास और अमूर्त वर्गों के बीच एक विकल्प को देखते हुए, मैंने अमूर्त कक्षाएं चुनीं। देरी को जोखिम में डालने और कुछ झगड़े को खत्म करने के बजायpure
, मैंने वहां का प्रतिनिधित्व करने के लिए 0 का उपयोग करने की परंपरा सी और सी ++ सम्मेलन का इस्तेमाल किया ।
वैसे भी C ++ मानक (the 9.2 - वर्ग के सदस्यों) = 0
को देखने को शुद्ध-विशेष कहा जाता है ।
pure
किसी संदर्भ परिभाषा के अंत में आपके द्वारा डाला जाने वाला प्रासंगिक कीवर्ड बनाना संभव हो सकता है , इसलिए virtual void MyFunction() pure
इसके बजाय और = 0
साथ जाने के लिए । final
override