C ++ میں کاپی کنسٹرکٹر کو کیسے نافذ کریں؟



کنسٹرکٹرز کو سمجھنا بہت سارے لوگوں کے لئے ایک پہلو رہا ہے۔ یہ مضمون آپ کو C ++ میں کاپی کنسٹرکٹر کے تصور کو بے بنیاد بنانے میں مدد کرے گا

تفہیم تعمیر کار بہت سے لوگوں کے لئے ایک جادو رہا ہے۔ یہ مضمون آپ کو C ++ میں کاپی کنسٹرکٹر کے تصور کو بے بنیاد بنانے میں مدد کرے گا۔ اس مضمون میں مندرجہ ذیل نکات کا احاطہ کیا جائے گا ،

تو آئیے شروع کریںاس مضمون کے ساتھ C ++ میں کاپی کنسٹرکٹر پر





کاپی کنسٹرکٹر ایک تعمیر کار ہے جو ایک ہی کلاس کے کسی اور شے کو استعمال کرتے ہوئے کلاس کے کسی شے کی ابتدا کرتا ہے۔

نحو:



ہمارے پاس مطلوبہ الفاظ کی تشکیل ہے کیونکہ ہم قدر کو مستحکم بنانا چاہتے ہیں اور اس بات کو یقینی بنانا چاہتے ہیں کہ اس میں کوڈ میں کہیں بھی ترمیم نہ کی جائے۔ پہلے سے طے شدہ کنسٹرکٹر کی طرح ، ایک کاپی کنسٹرکٹر بھی مرتب کے ذریعہ فراہم کیا جاتا ہے۔ اسے ڈیفالٹ کاپی کنسٹرکٹر کہا جاتا ہے۔ کاپی تعمیر کرنے والوں کو نجی بنایا جاسکتا ہے۔ جب ہم کاپی کنسٹرکٹر کو نجی بناتے ہیں تو ہم کلاس کی اشیاء کو کاپی نہیں کرسکتے ہیں۔

mysql_fetch_array پی ایچ پی

یہاں ایک مثال کا کوڈ ہے :

# नेम اسپیس ایس ٹی کلاس ٹیسٹ کا استعمال شامل کریں {نجی: انٹ ایکس ایکس پبلک: ٹیسٹ (انٹرویو x1) {x = x1} ٹیسٹ (کونٹ ٹیسٹ اور ٹی 2) {x = t2.x} انٹ گیٹ ایکس () {ریٹرن ایکس}} انٹ مین () t ٹیسٹ ٹی 1 (7) // عام کنسٹرکٹر کو یہاں ٹیسٹ t2 = t1 کہا جاتا ہے // کاپی کنسٹرکٹر کو یہاں cout کہا جاتا ہے<< 't1.x = ' << t1.getX() cout << 'nt2.x = ' << t2.getX() return 0 } 

آؤٹ پٹ:



سی ++ - ایڈورکا میں آؤٹ پٹ کاپی کنسٹرکٹر

وضاحت

مذکورہ بالا پروگرام کاپی کنسٹرکٹر کا بنیادی ڈیمو ہے۔ ہمارے پاس ایک کلاس ٹیسٹ ہے ، جس میں قسم کا ایک پرائیوٹ ممبر ہوتا ہے جس کو x کہتے ہیں۔ پھر ہمارے پاس پیرامیٹرائزڈ کنسٹرکٹر ہے ، جو متغیرات x کو 7 تفویض کرتا ہے۔ ہمارے پاس ایک کاپی کنسٹرکٹر ہے ، جو ٹی 1 کی قدر کے ساتھ ٹی 2 کی قیمت کو تیز کرتا ہے۔ ٹی 2 کا پتہ بھیجا جاتا ہے جس میں ٹی 1 کی قدر ہوتی ہے اور اسے ایکس کو تفویض کیا جاتا ہے۔ ایک گیٹ فنکشن موجود ہے جو ایکس کی ویلیو واپس کرتا ہے۔

مرکزی تقریب میں کلاس ٹیسٹ کا ایک مقصد ہوتا ہے جسے ٹی 1 کہا جاتا ہے۔ اس شے سے وابستہ ایک قدر ہے ، یہ ایک پیرامیٹر ہے۔ مرکزی فنکشن میں کلاس ٹیسٹ کا دوسرا اعتراض ہے جسے ٹی 2 کہا جاتا ہے۔ اس کی ابتداء ٹی 1 متغیر کے ذریعہ کی گئی ہے اور کاپی کنسٹرکٹر کو یہاں بلایا گیا ہے۔ آخر میں ، ایکس کی قدر حاصل کرنے کے لئے ٹی فنکشن اور ٹی 2 کے سلسلے میں گیٹ فنکشن کہا جاتا ہے۔

اقسام

کاپی کنسٹرکٹر کی دو اقسام ہیں۔
⦁ اتلی کاپی تعمیر کنندہ
⦁ گہری کاپی تعمیر کنندہ

C ++ میں کاپی کنسٹرکٹر پر اس مضمون کے ساتھ آگے بڑھ رہے ہیں

اتلی کاپی تعمیر کنندہ:

اتلی کاپی کنسٹرکٹر ڈیفالٹ کاپی کنسٹرکٹر ہے۔

مثال:

دو افراد بیک وقت ایک ڈیٹا بیس تک رسائی حاصل کرتے ہیں اور دو مختلف نظاموں سے زیادہ اقدار میں تبدیلیاں لیتے ہیں۔ اگر وہ ڈیٹا بیس میں تبدیلیاں لیتے ہیں تو ، یہ دونوں تبدیلیاں ڈیٹا بیس میں دکھائی جائیں گی۔ دونوں اشیاء ایک ہی میموری والے مقام کی طرف اشارہ کریں گے۔ یہ اتلی کاپی تعمیر کنندہ ہے۔ یہ زیادہ تر تب ہوتا ہے جب ہم ڈیفالٹ کاپی کنسٹرکٹر کے ساتھ کام کر رہے ہوں۔ یہاں ایک مثال کے لئے کوڈ ہے: اتلی کاپی تعمیر کنندہ:

# نام کی جگہ ایس ٹی ڈی کلاس ٹیسٹ {عوام کا استعمال شامل کریں: انٹ y ، زیڈ ٹیسٹ (انٹ یٹ 1 ، انٹ زیڈ 1) {y = y1 z = z1} main مین میٹ () {ٹیسٹ اے (7،13) cout<<'the sum is: '<< a.y+a.z return 1 } 

آؤٹ پٹ:

وضاحت:

مذکورہ کوڈ میں ، ہم مرتب کردہ کے ذریعہ فراہم کردہ ایک پہلے سے طے شدہ کاپی کنسٹرکٹر استعمال کرتے ہیں۔ لہذا یہ اتلی کاپی تعمیر کنندہ ہے۔

C ++ میں کاپی کنسٹرکٹر پر اس مضمون کے ساتھ آگے بڑھ رہے ہیں

گہری کاپی تعمیر کنندہ

ڈیپ کاپی کنسٹرکٹر صارف کی وضاحت شدہ کاپی کنسٹرکٹر ہے۔
مثال کے طور پر:
جب دو افراد کو لازمی طور پر پیش کش کی جائے اور وہ دونوں ایک ہی ذریعہ سے نقل کریں تو ، کاپیاں الگ الگ ہوں گی۔ لہذا ، جب آپ ترمیم کرتے ہیں تو صرف دوسری کاپی متاثر نہیں ہوتی ہے۔ یہ ڈیپ کاپی کنسٹرکٹر ہے۔ دونوں چیزیں میموری کے مختلف مقامات کی طرف اشارہ کریں گی اور ایک میں ہونے والی تبدیلیوں کا دوسرے پر کوئی اثر نہیں پڑے گا۔ میموری متحرک طور پر مختص ہے۔

یہاں ایک مثال کے لئے کوڈ ہے: گہری کاپی تعمیر کنندہ:

سیلینیم ویب ڈرایور میں کراس براؤزر کی جانچ
# नेम اسپیس ایس ٹی کلاس ٹیسٹ کا استعمال شامل کریں {نجی: انٹ ایکس ایکس پبلک: ٹیسٹ (انٹرویو x1) {x = x1} ٹیسٹ (کونٹ ٹیسٹ اور ٹی 2) {x = t2.x} انٹ گیٹ ایکس () {ریٹرن ایکس}} انٹ مین () t ٹیسٹ ٹی 1 (7) // عام کنسٹرکٹر کو یہاں ٹیسٹ t2 = t1 کہا جاتا ہے // کاپی کنسٹرکٹر کو یہاں cout کہا جاتا ہے<< 't1.x = ' << t1.getX() cout << 'nt2.x = ' << t2.getX() return 0 } 

آؤٹ پٹ:

وضاحت

یہ وہی کوڈ ہے جو ہم اوپر استعمال کرتے ہیں ، اسی طرح کی آؤٹ پٹ دیتے ہیں۔ یہ صارف کی وضاحت شدہ کاپی کنسٹرکٹر ہے اور اسی وجہ سے یہ ایک گہری کاپی کنسٹرکٹر ہے۔

اس طرح ہم نے 'C ++ میں کاپی تعمیر کنندہ' پر اس مضمون کے اختتام کو پہنچا ہے۔ اگر آپ مزید جاننا چاہتے ہیں تو ، چیک کریں ایڈورکا ، جو ایک قابل اعتماد آن لائن سیکھنے کی کمپنی ہے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس آپ کو ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی تصورات کی تربیت کے لئے ڈیزائن کیا گیا ہے۔

ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس مل جائیں گے۔