কম্পিউটার

C++ এ "প্লেসমেন্ট নতুন" এর জন্য কী কী ব্যবহার রয়েছে?


এই বিভাগে আমরা C++ এ প্লেসমেন্ট নতুন অপারেটর কি তা দেখব। এই প্লেসমেন্ট নতুন হল নতুন অপারেটরের আরেকটি ভিন্নতা। সাধারণ নতুন অপারেটর দুটি জিনিস সম্পাদন করে। এটি মেমরি বরাদ্দ করে, এবং তারপর বরাদ্দ মেমরিতে একটি বস্তু তৈরি করে।

নতুন অপারেটর হিপ বিভাগে মেমরি বরাদ্দ করে এবং সেখানে বস্তু তৈরি করে। কিন্তু প্লেসমেন্ট নতুন অপারেটরের জন্য, এটি প্রদত্ত ঠিকানায় অবজেক্ট তৈরি করে। মেমরি ডিলোকেট করার জন্য, আমরা ডিলিট কীওয়ার্ড ব্যবহার করতে পারি যদি নতুন অপারেটর ব্যবহার করে মেমরি বরাদ্দ করা হয়। কিন্তু নতুন প্লেসমেন্টের জন্য কোন প্লেসমেন্ট ডিলিট ফিচার নেই।

তাই সংক্ষেপে, নতুন প্লেসমেন্ট আপনাকে মেমরিতে একটি বস্তু "নির্মাণ" করতে দেয় যা ইতিমধ্যেই একটি প্রদত্ত ভেরিয়েবলের জন্য বরাদ্দ করা হয়েছে। এটি অপ্টিমাইজেশানের জন্য উপযোগী কারণ এটি ইতিমধ্যেই বরাদ্দ করা একই মেমরি পুনরায় বরাদ্দ না করা এবং পুনরায় ব্যবহার না করা দ্রুত। এটি নিম্নরূপ ব্যবহার করা যেতে পারে:

new (address) (type) initializer

আমরা একটি ঠিকানা নির্দিষ্ট করতে পারি যেখানে আমরা প্রদত্ত ধরণের একটি নতুন অবজেক্ট তৈরি করতে চাই। উদাহরণস্বরূপ।

উদাহরণ কোড

#include<iostream>
using namespace std;
int main() {
   int a = 5;
   cout << "a = " << a << endl;
   cout << "&a = " << &a << endl;
   // Placement new changes the value of X to 100
   int *m = new (&a) int(10);
   cout << "\nAfter using placement new:" << endl;
   cout << "a = " << a << endl;
   cout << "m = " << m << endl;
   cout << "&a = " << &a << endl;
   return 0;
}

আউটপুট

a = 5
&a = 0x22fe34
After using placement new:
a = 10
m = 0x22fe34
&a = 0x22fe34

  1. উইন্ডোতে c++ এর জন্য শীর্ষ IDE কি?

  2. C++ এ টাইপ কোয়ালিফায়ার কি?

  3. C++ এ অক্ষর অক্ষর কি কি?

  4. জাভাতে C++ বৈশিষ্ট্যগুলি কী অনুপস্থিত?