यहां हम देखेंगे कि क्या मामला होगा यदि विनाशक सी ++ में निजी हैं। आइए विचार प्राप्त करने के लिए कुछ उदाहरण कोड देखें।
इस कोड में निजी विनाशक है, लेकिन यह कोई त्रुटि उत्पन्न नहीं करेगा क्योंकि कोई वस्तु नहीं बनाई गई है।
उदाहरण
#शामिल करें
इस कार्यक्रम में, यह संकलन त्रुटि उत्पन्न करेगा, क्योंकि हम एक वस्तु बनाने की कोशिश कर रहे हैं, लेकिन संकलक नोटिस कर सकता है कि विनाशक पहुंच योग्य नहीं है। इसलिए कार्य पूरा करने के बाद इसे नष्ट नहीं किया जा सकता है।
उदाहरण
#includeनामस्थान का उपयोग करना;वर्ग my_class {निजी:~my_class() {//private destructor}};int main() { my_class obj;} आउटपुट
[त्रुटि] 'my_class::~my_class()' निजी हैअब अगर हम उस वर्ग के लिए एक पॉइंटर बनाते हैं, तो यह त्रुटि उत्पन्न नहीं करेगा क्योंकि कोई वास्तविक वस्तु नहीं बनाई गई है।
उदाहरण
#includeनेमस्पेस std का उपयोग करके; क्लास my_class {निजी:~my_class() {//private destructor}};int main() { my_class *obj;}
यदि नए ऑपरेटर का उपयोग करके एक ऑब्जेक्ट बनाया जाता है, तो भी कोई त्रुटि उत्पन्न नहीं होगी। संकलक सोचता है कि स्मृति से वस्तु को हटाना प्रोग्रामर की जिम्मेदारी है।
उदाहरण
#includeनेमस्पेस std का उपयोग करके; क्लास my_class {निजी:~my_class() {//private destructor}};int main() { my_class *obj =new my_class;} आउटपुट
अब अगर हम ऑब्जेक्ट को डिलीट करने के लिए डिलीट स्टेटमेंट जोड़ते हैं, तो यह प्राइवेट डिस्ट्रक्टर के लिए एरर जेनरेट करेगा।
उदाहरण
#includeनेमस्पेस std का उपयोग करके; क्लास my_class {निजी:~ my_class() {//private destructor}};int main() { my_class *obj =new my_class; ओबीजे हटाएं;} आउटपुट
[त्रुटि] 'my_class::~my_class()' निजी है