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

C++-এ কপি-অ্যান্ড-সোয়াপ ইডিয়ম


অ্যাসাইনমেন্ট দুটি ধাপে oluş করে: একটি অবজেক্টের পুরনো স্টেট টিয়ার করা এবং তার জন্য নতুন স্টেট বিল্ড করা। ডিস্ট্রাক্টর প্রথম ধাপের জন্য ব্যবহৃত হয় এবং কপি কনস্ট্রাক্টর দ্বিতীয় ধাপটি করে।

এদুটো আলাদা আলাদা ইমপ্লিমেন্ট করা সহজ। কিন্তু অ্যাসাইনমেন্ট অপারেটর ওভারলোড করার সময় এটি কফি কঠিন হয়ে যেতে পারে। কপি-অ্যান্ড-সোয়াপ ইডিয়ম এটির সমাধান।

এই ইডিয়ম কপি-কনস্ট্রাক্টর ব্যবহার করে ডেটার একটি লোকাল কপি বানায়। তারপর পুরনো ডেটাকে নতুন ডেটার সাথে swap ফাংশন ব্যবহার করে বদলায়। geçici কপিটি তারপর ডিস্ট্রাক্টর দিয়ে ডিস্ট্রাক্ট হয়। চূড়ান্তভাবে আমাদের থাকে শুধু নতুন ডেটার একটি কপি।

তাহলে, কপি-অ্যান্ড-সোয়াপ ইডিয়ম তিনটি জিনিস দরকার

  • কপি-কনস্ট্রাক্টর
  • কপি-কনস্ট্রাক্টর
  • ডিস্ট্রাক্টর
  • swap ফাংশন।

একটি swap ফাংশন হলো নন-থ্রোইং ফাংশন যা একই ক্লাসের দুটি অবজেক্ট বদলায়, মেম্বার বাই মেম্বার।

নোট: আপনাকে অবশ্যই std::swap ফাংশন ব্যবহার করতে পারবেন না কারণ এটি ইন্টারন্যালি কপি কনস্ট্রাক্টর এবং অ্যাসাইনমেন্ট অপারেটর ব্যবহার করে একই কাজ করে।


  1. C++-এ swap() ফাংশন

  2. স্ট্রিং কপি করার C++ প্রোগ্রাম (strcpy ব্যবহার করে এবং না করে)

  3. C++ প্রোগ্রাম: দুটি সংখ্যা সোয়াপ (Swap) করা

  4. C++-এ Copy-and-Swap Idiom কী?