template <class T>
class Stack
{
public:
Stack(int = 10) ;
~Stack() { delete [] stackPtr ; } //<--- What does the "~" signify?
int push(const T&);
int pop(T&) ;
int isEmpty()const { return top == -1 ; }
int isFull() const { return top == size - 1 ; }
private:
int size ;
int top ;
T* stackPtr ;
} ;
उत्तर
यह नाशक, यह उदाहरण नष्ट कर देता है, स्मृति, आदि आदि भी मुक्त हो जाता
यहाँ ibm.com से वर्णन दिया गया है है:
Destructors आमतौर पर स्मृति पुनःआवंटन के लिए इस्तेमाल किया और अन्य सफाई कर रहे हैं ऑब्जेक्ट नष्ट होने पर कक्षा वस्तु और उसके वर्ग के सदस्यों के लिए। एक वस्तु ऑब्जेक्ट के लिए एक विनाशक कहा जाता है जब वह वस्तु गुंजाइश से गुजरती है या स्पष्ट रूप से हटा दी जाती है।
देखें https://www.ibm.com/support/knowledgecenter/SSB27U_5.4.0/com.ibm.zos.r9.cbclx01/cplr380.htm
यह एक नाशक है। यह तब कहा जाता है जब ऑब्जेक्ट नष्ट हो जाता है (जीवन के दायरे से बाहर या हटाया जाता है)।
स्पष्ट होने के लिए, आपको कन्स्ट्रक्टर के लिए ~ NameOfTheClass का उपयोग करना होगा, अन्य नाम अमान्य हैं।
"अन्य नाम वैध हैं"? –
पुराना उत्तर ... मुझे लगता है कि मेरा मतलब था कि ~ के बाद यह कोई नाम हो सकता है जब तक कि यह वर्ग का नाम और कन्स्ट्रक्टर नाम जैसा ही हो। – Klaim
यह एक विनाशक है। जब वस्तु दायरे से बाहर हो जाती है तो फ़ंक्शन को कॉल करने की गारंटी दी जाती है।
... अगर इसे ढेर पर आवंटित किया गया है।जब ऑब्जेक्ट पर 'डिलीट' कहा जाता है तो उसे ढेर पर आवंटित किया जाता है। – Jherico
@ जेरिको: वास्तव में यह तब होता है जब कीवर्ड "हटाएं" का उपयोग किया जाता है। याद रखें कि कीवर्ड "नया" "ऑपरेटर नया" का आह्वान करता है और उसके बाद दिए गए पते पर कन्स्ट्रक्टर को कॉल करता है, इसलिए स्टैक पर "नई" मेमोरी पूरी तरह से संभव है। :) कीवर्ड "डिलीट" विनाशक को कॉल करता है और फिर "ऑपरेटर डिलीट" का आह्वान करता है। – Troubadour
@ जेरिको या नामस्थान क्षेत्र में रहता है या एक स्थैतिक वर्ग सदस्य या कार्य-स्थानीय स्थैतिक चर है: स्थिर भंडारण अवधि। दूसरे शब्दों में: स्वचालित भंडारण वाले सभी वैयरबेल उपयुक्त होने पर _automatically_ को नष्ट कर दिया जाएगा। [स्टेटिक प्रारंभिक आदेश Fiasco] से सावधान रहें (http://stackoverflow.com/a/1005709/85371) – sehe
कि नाशक होगा
के रूप में उल्लेख किया है, उदाहरण में आप पूछ रहे हैं के बारे में यह class Stack
के लिए नाशक है।
लेकिन आपके सवाल का वास्तव में लेने के रूप में यह शीर्षक में प्रकट होता है:
ग में क्या एक टिल्ड "~" करता ++ से पहले एक समारोह नाम दर्शाता है?
एक और स्थिति है। किसी भी संदर्भ में किसी वर्ग के नाम से पहले को छोड़कर (जो कि विनाशक संदर्भ है) ~
एक पूरक (या bitwise नहीं) ऑपरेटर है। यकीन है कि यह बहुत बार नहीं आता है होना करने के लिए है, लेकिन आप की तरह
if (~getMask()) { ...
जो समान दिखता है, लेकिन एक बहुत अलग अर्थ है एक मामले कल्पना कर सकते हैं।
- 1. क्या डोमेन नाम एक विशिष्ट फ़ोल्डर को इंगित करता है?
- 2. फ़ंक्शन नाम से पहले तारांकन का कार्य क्या है?
- 3. एक प्रतिनिधि क्या इंगित करता है?
- 4. फ़ंक्शन नाम से पहले और क्या संकेत मिलता है?
- 5. फ़ंक्शन नाम से पहले टिल्डे का मतलब सी # में क्या है?
- 6. मैक्रोज़ में tilde (~) का मतलब क्या है?
- 7. System.Web.Configuration.MachineKeySection.MetineKeySection.GetDecodedData इंगित करता है
- 8. फ़ंक्शन नाम से पहले अपेक्षित प्रारंभकर्ता
- 9. स्क्विग्लॉग (tilde) i.e. `ऑपरेटर पाइथन में क्या करता है?
- 10. सी # में variabe मतलब से पहले @ क्या करता है?
- 11. सी # में फ़ंक्शन पॉइंटर से फ़ंक्शन नाम कैसे प्राप्त करें?
- 12. phpMyAdmin - पंक्तियों कॉलम में क्या एक tilde (~) का मतलब है?
- 13. मैकॉक्स-वर्जन-मिनट क्या इंगित करता है?
- 14. जावास्क्रिप्ट "यह" विंडो ऑब्जेक्ट को फिर से इंगित करता है
- 15. मुख्य से पहले एक फ़ंक्शन परिभाषित करें?
- 16. एक परिवर्तनीय नाम से पहले @ प्रतीक का मतलब सी # में क्या है?
- 17. फ़ंक्शन हस्ताक्षर में एक चर नाम से पहले * और ** क्या करें?
- 18. क्रैश लॉग में मेरे ऐप नाम के बगल में "jettisoned" क्या इंगित करता है?
- 19. सी ++ में "~" (tilde) प्रतीक का अर्थ?
- 20. Window.body.offsetHeight window.print() से पहले क्या करता है?
- 21. सी ++ कन्स्ट्रक्टर नाम के बाद एक कोलन क्या करता है?
- 22. क्या उपयोगकर्ता पंजीकरण फॉर्म इंगित करता है कि कोई ईमेल पता पहले से उपयोग में है या नहीं?
- 23. एसबीवाइट प्रक्रिया राज्य फ्रीबीएसडी टॉप में क्या इंगित करता है?
- 24. यह वास्तव में क्या करता है? - पागल सी ++ फ़ंक्शन
- 25. स्प्रिंग में @ वालिड एनोटेशन क्या इंगित करता है?
- 26. क्या कोई सूचक एलएसबी या एमएसबी को इंगित करता है?
- 27. डिफ़ॉल्ट रूप से एक php फ़ंक्शन वापस क्या करता है?
- 28. प्रत्येक sc-win32-status code क्या इंगित करता है?
- 29. यह कैसे हुआ कि "स्थैतिक" सी और सी ++ में बाहरी संबंध के बिना फ़ंक्शन/चर को इंगित करता है?
- 30. फ़ंक्शन कॉल से फ़ंक्शन कॉल नाम निकालने
~ थोड़ा सा नकारात्मक ऑपरेशन है। जब फ़ंक्शन परिभाषा पर लागू होता है, तो इसका अर्थ यह है कि यह फ़ंक्शन * विपरीत * करेगा जो यह कहता है कि यह करेगा - उदाहरण के लिए, '~ push() 'वास्तव में ढेर को पॉप करेगा, और' लिखना गंभीर सामग्री()' वास्तव में इस तरह की टिप्पणियां उत्पन्न करेंगे। –
इस साइट पर अधिकांश सी ++ प्रश्न पोस्ट करने वाले व्यक्ति के लाभ के लिए, j_random_hacker की टिप्पणी पढ़ने का प्रयास न करें। – Alan
उन लोगों के लाभ के लिए जो हास्य की भावना रखते हैं (और कुछ बुनियादी प्रोग्रामिंग ज्ञान) j_random_hacker की टिप्पणी पढ़ने का प्रयास करते हैं। –