मैंने हमेशा सोचा है कि हम कोड क्यों करते हैं
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साथ जाने के लिए । finaloverride