কম্পিউটার টিউটোরিয়াল

C++11-এ Rule of Five (পাঁচটি নিয়ম) কী?

Rule of Five হলো C++11-এ রিসোর্স ম্যানেজমেন্টের জন্য গাইডলাইন। যদি ক্লাসটি রিসোর্স ম্যানেজ করে (মেমরি, ফাইল হ্যান্ডল, সকেট ইত্যাদি), তবে নিচের পাঁচটি ফাংশন সবই ডিফাইন/ডিলিট/ডিফল্ট করতে হয়:

  1. ডিস্ট্রাক্টর (Destructor): রিসোর্স মুক্ত করা।
  2. কপি কনস্ট্রাক্টর (Copy Constructor): গভীর কপি (deep copy) নিশ্চিত করা।
  3. কপি অ্যাসাইনমেন্ট অপারেটর (Copy Assignment): গভীর কপি, সেলফ-অ্যাসাইনমেন্ট হ্যান্ডলিং।
  4. মুভ কনস্ট্রাক্টর (Move Constructor): রিসোর্স অনারশিপ ট্রান্সফার (C++11 নতুন)।
  5. মুভ অ্যাসাইনমেন্ট অপারেটর (Move Assignment): রিসোর্স অনারশিপ ট্রান্সফার (C++11 নতুন)।
  6. কেন Rule of Three (৩) থেকে Five (৫) হলো?

    C++98/03-এ শুধু ৩টি ছিল (কপি কনস্ট্রাক্টর, কপি অ্যাসাইনমেন্ট, ডিস্ট্রাক্টর)। C++11-এ মুভ সেমানটিক্স (rvalue reference, &&) আসার পর মুভ কনস্ট্রাক্টর এবং মুভ অ্যাসাইনমেন্ট যোগ হয়েছে।

    নियम: যদি আপনাকে উপরের যেকোনো একটিই লিখতে হয়, তবে সাবধানে সব পাঁচটি নিয়ে ডিজাইন করতে হবে। ডিফল্ট বিল্ড-ইন মান (= default) বা ডিলিট (= delete) করতে পারেন।

    রিসোর্স: Rule of the Big Five PDF

  1. URL (ইউনিফর্ম রিসোর্স লোকেটর) কী?

  2. HTML পেজে হরাইজন্টাল রুল (Horizontal Rule) কী?

  3. সাইবারপাঙ্ক ২০৭৭ ম্যালওয়ার স্ক্যাম চেনা এবং এড়ানো: আপনার পিসি রক্ষা করুন

  4. সিস্টেম রিসোর্স বোঝা: প্রকার, ফাংশন ও অপ্টিমাইজেশন