Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में new ऑपरेटर का उपयोग कब करें और कब नहीं करना चाहिए?


नए ऑपरेटर का उपयोग ढेर पर स्मृति आवंटन के लिए अनुरोध को दर्शाता है। यदि पर्याप्त मेमोरी उपलब्ध है, तो यह मेमोरी को इनिशियलाइज़ करता है और अपना पता पॉइंटर वेरिएबल में लौटाता है।

नए ऑपरेटर का उपयोग केवल तभी किया जाना चाहिए जब डेटा ऑब्जेक्ट को तब तक मेमोरी में रहना चाहिए जब तक कि डिलीट नहीं कहा जाता है। अन्यथा यदि नए ऑपरेटर का उपयोग नहीं किया जाता है, तो वस्तु के दायरे से बाहर होने पर वस्तु स्वतः नष्ट हो जाती है। दूसरे शब्दों में, नए का उपयोग करने वाली वस्तुओं को मैन्युअल रूप से साफ किया जाता है जबकि अन्य वस्तुओं के दायरे से बाहर होने पर स्वचालित रूप से साफ हो जाती हैं।

न्यू ऑपरेटर का सिंटैक्स निम्नलिखित है।

pointer_variable = new datatype;

उपरोक्त सिंटैक्स में, पॉइंटर_वेरिएबल पॉइंटर वैरिएबल है जिसे मेमोरी एड्रेस लौटाया जाता है और डेटाटाइप मेमोरी के लिए बिल्ट-इन डेटा टाइप होता है।

एक प्रोग्राम जो नए ऑपरेटर के उपयोग को प्रदर्शित करता है, वह इस प्रकार दिया गया है।

उदाहरण

#include <iostream>
using namespace std;
int main () {
   int *ptr1 = NULL;
   ptr1 = new int;
   float *ptr2 = new float(223.324);
   *ptr1 = 28;
   cout << "Value of pointer variable 1 : " << *ptr1 << endl;
   cout << "Value of pointer variable 2 : " << *ptr2 << endl;
   delete ptr1;
   delete ptr2;
   return 0;
}

आउटपुट

उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है।

Value of pointer variable 1 : 28
Value of pointer variable 2 : 223.324

आइए अब उपरोक्त कार्यक्रम को समझते हैं।

नए ऑपरेटर का उपयोग मेमोरी को इनिशियलाइज़ करने और पॉइंटर वेरिएबल ptr1 और ptr2 पर अपना पता वापस करने के लिए किया जाता है। फिर ptr1 और ptr2 द्वारा इंगित मेमोरी पोजीशन पर संग्रहीत मान प्रदर्शित होते हैं। अंत में मेमोरी को खाली करने के लिए डिलीट ऑपरेटर का उपयोग किया जाता है।

इसे दिखाने वाला कोड स्निपेट इस प्रकार है -

int *ptr1 = NULL;
ptr1 = new int;
float *ptr2 = new float(223.324);
*ptr1 = 28;
cout << "Value of pointer variable 1 : " << *ptr1 << endl;
cout << "Value of pointer variable 2 : " << *ptr2 << endl;
delete ptr1;
delete ptr2;

  1. आपको C++ में 'मित्र' का प्रयोग कब करना चाहिए?

    किसी वर्ग के मित्र कार्य को उस वर्ग के दायरे से बाहर परिभाषित किया गया है लेकिन उसे कक्षा के सभी निजी और संरक्षित सदस्यों तक पहुंचने का अधिकार है। भले ही फ्रेंड फंक्शन के प्रोटोटाइप क्लास डेफिनिशन में दिखाई देते हैं, फ्रेंड्स मेंबर फंक्शन नहीं होते हैं। एक दोस्त एक फंक्शन, फंक्शन टेम्प्लेट, या मेंब

  1. C++ में नए ऑपरेटर के साथ मेमोरी को इनिशियलाइज़ कैसे करें?

    C++ में नए ऑपरेटर को मेमोरी आवंटित करने के लिए परिभाषित किया गया है न कि इनिशियलाइज़ करने के लिए। यदि आप नए ऑपरेटर के साथ int प्रकार की एक सरणी आवंटित करना चाहते हैं, और आप उन सभी को डिफ़ॉल्ट मान (यानी ints के मामले में 0) में प्रारंभ करना चाहते हैं, तो आप निम्न सिंटैक्स का उपयोग कर सकते हैं - सिंटै

  1. C++ में पॉइंटर ऑपरेटर * क्या है?

    C++ दो पॉइंटर ऑपरेटर प्रदान करता है, जो ऑपरेटर का पता (&) और इनडायरेक्शन ऑपरेटर (*) हैं। एक पॉइंटर एक वेरिएबल होता है जिसमें दूसरे वेरिएबल का पता होता है या आप कह सकते हैं कि एक वेरिएबल जिसमें दूसरे वेरिएबल का पता होता है, दूसरे वेरिएबल को पॉइंट करने के लिए कहा जाता है। एक वैरिएबल कोई भी डेटा प्रकार