কপি কনস্ট্রাক্টর হল এক ধরনের কনস্ট্রাক্টর। এটি একটি অবজেক্ট তৈরি করে এবং একই ক্লাসের একটি অবজেক্ট দিয়ে শুরু করে। কপি কনস্ট্রাক্টর ক্লাসে সংজ্ঞায়িত না হলে, কম্পাইলার নিজেই একটি সংজ্ঞায়িত করে। পয়েন্টার ভেরিয়েবল বা ডায়নামিক মেমরি বরাদ্দ আছে এমন একটি ক্লাসের জন্য কপি কনস্ট্রাক্টর আবশ্যক।
একটি প্রোগ্রাম যা একটি অনুলিপি কনস্ট্রাক্টর প্রদর্শন করে তা নিম্নরূপ।
উদাহরণ
#includenamespace ব্যবহার করে std;class Demo { private:int num1, num2; সর্বজনীন:ডেমো(int n1, int n2) { num1 =n1; num2 =n2; } ডেমো(const ডেমো &n) { num1 =n.num1; num2 =n.num2; } void display() { cout<<"num1 ="< আউটপুট
num1 =10num2 =20num1 =10num2 =20উপরের প্রোগ্রামে, ক্লাস ডেমোতে একটি সাধারণ প্যারামিটারাইজড কনস্ট্রাক্টর এবং একটি কপি কনস্ট্রাক্টর রয়েছে। এগুলি ছাড়াও, একটি ফাংশন রয়েছে যা num1 এবং num2 এর মানগুলি প্রদর্শন করে। এগুলি নিম্নরূপ দেওয়া হল।
<প্রি>ক্লাস ডেমো { ব্যক্তিগত:int num1, num2; সর্বজনীন:ডেমো(int n1, int n2) { num1 =n1; num2 =n2; } ডেমো(const ডেমো &n) { num1 =n.num1; num2 =n.num2; } void display() { cout<<"num1 ="<ফাংশনে main(), ক্লাস অবজেক্ট obj1 একটি প্যারামিটারাইজড কনস্ট্রাক্টর ব্যবহার করে আরম্ভ করা হয়। অবজেক্ট obj2 একটি কপি কনস্ট্রাক্টর ব্যবহার করে আরম্ভ করা হয় এবং obj1 এর মানগুলি obj2 এ কপি করা হয়। অবশেষে obj1 এবং obj2 এর মান প্রদর্শিত হয়। এটি নীচে দেওয়া হল৷
৷ডেমো obj1(10, 20); ডেমো obj2 =obj1;obj1.display();obj2.display();