রিসোর্স ম্যানেজমেন্টের জন্য C++ এ পাঁচটির নিয়ম প্রয়োগ করা হয়। রিসোর্স ম্যানেজমেন্ট ক্লায়েন্টকে পরিচালিত বস্তুর জীবনকাল সম্পর্কে উদ্বিগ্ন হতে মুক্ত করে, সম্ভাব্যভাবে মেমরি ফাঁস এবং C++ কোডে অন্যান্য সমস্যা দূর করে। কিন্তু এই ব্যবস্থাপনা একটি খরচ আসে. দ্য বিগ ফাইভের নিয়ম বলে যে আপনাকে যদি নিম্নলিখিত ফাংশনগুলির মধ্যে একটি লিখতে হয় তবে সেগুলির জন্য আপনার একটি নীতি থাকতে হবে। যদি আমাদের একটি অবজেক্ট Foo থাকে তাহলে আমাদের একটি FooManager থাকতে পারে যেটি Foo রিসোর্স পরিচালনা করে। FooManager প্রয়োগ করার সময়, আপনি সম্ভবত নিম্নলিখিত ফাংশনগুলি প্রয়োগ করতে হবে -
-
ধ্বংসকারী − যখন এই ম্যানেজার সুযোগের বাইরে চলে যায় তখন এটির পরিচালনা করা সমস্ত সংস্থান মুক্ত করা উচিত৷
৷ -
অ্যাসাইনমেন্ট অপারেটর − যদি আপনি একটি প্রদান না করেন তাহলে কম্পাইলার একটি ডিফল্ট অ্যাসাইনমেন্ট অপারেটর তৈরি করে। ডিফল্ট অ্যাসাইনমেন্ট অপারেশন হল সদস্য-ভিত্তিক কপি ফাংশন এবং এটি একটি অগভীর অনুলিপি করে এবং একটি গভীর অনুলিপি নয়। এটি মেমরি লিক, ভুল অ্যাসাইনমেন্টের মতো সমস্যার কারণ হতে পারে।
-
কপি কনস্ট্রাক্টর − কম্পাইলার সরবরাহকৃত কপি কনস্ট্রাক্টর সমস্ত FooManager-এর বৈশিষ্ট্যগুলির সদস্য-ভিত্তিক অনুলিপি করে। এটি অ্যাসাইনমেন্ট অপারেটরের মতো একই সমস্যা তৈরি করে।
-
নির্মাতা সরান - বস্তুর অনুলিপি করা ব্যয়বহুল হতে পারে কারণ এতে অস্থায়ী বস্তু তৈরি করা, অনুলিপি করা এবং তারপর ধ্বংস করা জড়িত। C++11 r-value রেফারেন্সের ধারণাটি চালু করেছে। একটি r-মান রেফারেন্স স্পষ্টভাবে একটি r-মানের সাথে আবদ্ধ হতে পারে। একটি r-মান একটি নামহীন বস্তু। অন্য কথায়, একটি অস্থায়ী বস্তু। এই r-মান রেফারেন্সটি এটিতে পাস করা r-মানের একটি রেফারেন্স তৈরি করতে কনস্ট্রাক্টরে ব্যবহার করা যেতে পারে।
-
অ্যাসাইনমেন্ট অপারেটর সরান৷ - এটি একটি সময়ে শুধুমাত্র একটি সম্পদ আছে দরকারী. এই সম্পদের মালিকানা এক পরিচালক থেকে অন্য পরিচালকের কাছে স্থানান্তর করা যেতে পারে। এই ধরনের ক্ষেত্রে আপনি একটি মুভ অ্যাসাইনমেন্ট অপারেটর প্রদান করতে পারেন।
পাঁচটির নিয়ম সম্পর্কে জানার জন্য এটি একটি দুর্দান্ত সংস্থান - https://www.feabhas.com/sites/default/files/2016-06/Rule%20of%20the%20Big%20Five.pdf৷