কম্পিউটার

সি++ এ নতুন অপারেটর কখন ব্যবহার করবেন এবং কখন এটি ব্যবহার করা উচিত নয়?


নতুন অপারেটরের ব্যবহার হিপে মেমরি বরাদ্দের জন্য একটি অনুরোধকে বোঝায়৷ যদি পর্যাপ্ত মেমরি পাওয়া যায়, তবে এটি মেমরি শুরু করে এবং পয়েন্টার ভেরিয়েবলে তার ঠিকানা ফেরত দেয়।

নতুন অপারেটরটি শুধুমাত্র তখনই ব্যবহার করা উচিত যদি ডেটা অবজেক্টটি মুছে ফেলা না হওয়া পর্যন্ত মেমরিতে থাকে। অন্যথায় যদি নতুন অপারেটর ব্যবহার না করা হয়, বস্তুটি সুযোগের বাইরে চলে গেলে স্বয়ংক্রিয়ভাবে ধ্বংস হয়ে যায়। অন্য কথায়, নতুন ব্যবহার করা বস্তুগুলি ম্যানুয়ালি পরিষ্কার করা হয় যখন অন্য বস্তুগুলি সুযোগের বাইরে চলে গেলে স্বয়ংক্রিয়ভাবে পরিষ্কার হয়৷

নতুন অপারেটরের সিনট্যাক্স নিচে দেওয়া হল।

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++ এ ব্যবহার করব?

  2. আপনার কখন C++ এ 'বন্ধু' ব্যবহার করা উচিত?

  3. কিভাবে C++ এ একটি নতুন অপারেটরের সাথে মেমরি শুরু করবেন?

  4. C++ এ পয়েন্টার অপারেটর * কি?