delete[]
অপারেটর ডিলিট অ্যারে ব্যবহার করা হয়। delete
অপারেটর অ-বিন্যাস বস্তু মুছে ফেলতে ব্যবহার করা হয়। এটি কল operator delete[]
এবংoperator delete
অ্যারে বা অ-অ্যারে অবজেক্টটি অ্যারে এর উপাদান বা নন-অ্যারে অবজেক্টের জন্য ডেস্ট্রাক্টরদের ডাকার পরে (শেষ পর্যন্ত) মেমরিটি মুছে ফেলার জন্য এটি যথাক্রমে ফাংশন করে।
নিম্নলিখিত সম্পর্কগুলি দেখায়:
typedef int array_type[1];
// create and destroy a int[1]
array_type *a = new array_type;
delete [] a;
// create and destroy an int
int *b = new int;
delete b;
// create and destroy an int[1]
int *c = new int[1];
delete[] c;
// create and destroy an int[1][2]
int (*d)[2] = new int[1][2];
delete [] d;
এটি new
অ্যারে তৈরি করে (সুতরাং, হয় new type[]
বা new
অ্যারে টাইপ কনস্ট্রাক্টে প্রয়োগ করা হয় ), স্ট্যান্ডার্ড operator new[]
অ্যারের এলিমেন্ট টাইপ শ্রেণিতে বা গ্লোবাল স্কোপে একটি সন্ধান করে এবং অনুরোধ করা মেমরির পরিমাণটি পাস করে। এটি চাইলে এর চেয়ে বেশি অনুরোধ করতে পারে N * sizeof(ElementType)
(উদাহরণস্বরূপ উপাদানগুলির সংখ্যা সংরক্ষণ করার জন্য, তাই এটি পরে মুছে ফেলা হলে জানতে পারে যে কতগুলি ডেস্ট্রাক্টর কল করেছে)। ক্লাস যদি operator new[]
মেমরির পরিমাণকে অতিরিক্ত হিসাবে অন্যটিকে ঘোষণা করেsize_t
স্বীকৃতি দেয় তবে দ্বিতীয় প্যারামিটার বরাদ্দকৃত উপাদানগুলির সংখ্যা গ্রহণ করবে - এটি এটি যে কোনও উদ্দেশ্যে (ডিবাগিং, ইত্যাদি ...) এটি ব্যবহার করতে পারে।
জন্য new
একটি অ-বিন্যাস বস্তু তৈরি করে, এটি একটি জন্য চেহারা হবে operator new
উপাদান এর ক্লাসে বা বিশ্বব্যাপী সুযোগ। এটি অনুরোধ করা মেমরির পরিমাণটি ( sizeof(T)
সর্বদা সর্বদা) পাস করে ।
এর জন্য এটি delete[]
অ্যারেগুলির উপাদান শ্রেণীর ধরণের অনুসন্ধান করে এবং তাদের ধ্বংসকারীদের কল করে। operator delete[]
ব্যবহৃত ফাংশন উপাদান টাইপ এর ক্লাসে এক, অথবা যদি কেউ নেই বিশ্বব্যাপী সুযোগ তারপর হয়।
এর জন্য delete
, যদি পয়েন্টারটি উত্তীর্ণ হয় তবে প্রকৃত অবজেক্টের ধরণের একটি বেস বর্গ হয়, বেস শ্রেণীর একটি ভার্চুয়াল ডেস্ট্রাক্টর থাকতে হবে (অন্যথায়, আচরণটি অপরিজ্ঞাত)। যদি এটি একটি বেস শ্রেণি না হয়, তবে class শ্রেণীর ডেস্ট্রাক্টর বলা হয় operator delete
এবং সেই শ্রেণিতে একটি বা বিশ্বব্যাপী operator delete
ব্যবহৃত হয়। যদি একটি বেস শ্রেণিটি পাস করা হয়, তবে প্রকৃত অবজেক্ট টাইপের ডেস্ট্রাক্টরকে ডাকা হয় operator delete
এবং সেই শ্রেণীর সন্ধান পাওয়া যায়, বা যদি না থাকে তবে একটি বিশ্বব্যাপী operator delete
বলা হয়। তাহলে operator delete
ক্লাসে ধরনের একটি দ্বিতীয় প্যারামিটার রয়েছে size_t
, এটা উপাদান ডি-এলোকেট করা নম্বর পাবেন।