এই বিভাগে আমরা 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