এই পোস্টে, আমরা সি++-এ কপি কনস্ট্রাক্টর (Copy Constructor) এবং অ্যাসাইনমেন্ট অপারেটর (Assignment Operator)-এর মধ্যে পার্থক্য বুঝব।
কপি কনস্ট্রাক্টর (Copy Constructor)
- এটি একটি ওভারলোডেড কনস্ট্রাক্টর।
- এটি ইতিমধ্যে বিদ্যমান একটি অবজেক্টের ডেটা/মান দিয়ে নতুন অবজেক্টটি ইনিশিয়ালাইজ করে।
- যখন কোনো বিদ্যমান অবজেক্টের সাহায্যে নতুন অবজেক্ট তৈরি করা হয়, তখন এটি ব্যবহার হয়।
- এই দুটি অবজেক্ট আলাদা মেমরি লোকেশনে সংরক্ষিত হয়।
- যদি ক্লাসে কোনো কপি কনস্ট্রাক্টর ডিফাইন করা না থাকে, তবে কম্পাইলার নিজে একটি সরবরাহ করে।
অ্যাসাইনমেন্ট অপারেটর (Assignment Operator)
- এটি একটি অপারেটর।
- এটি একটি অবজেক্টের মান অন্য একটি অবজেক্টে অ্যাসাইন করে, যেখানে দুটি অবজেক্টই ইতিমধ্যে বিদ্যমান থাকে।
- যখন একটি বিদ্যমান অবজেক্টকে নতুন অবজেক্টে অ্যাসাইন করতে হয়, তখন এটি ব্যবহার হয়।
- এখানে একটি মেমরি লোকেশন ব্যবহার হয় এই অবজেক্ট সংরক্ষণের জন্য।
- কিন্তু একাধিক রেফারেন্স ভেরিয়েবল এই অবজেক্টের লোকেশনে পয়েন্ট করে।
- যদি এই অপারেটর ওভারলোড করা না থাকে, তবে বিটওয়াইজ কপি (bitwise copy) তৈরি হয়।