సి ++ లో కాపీ కన్స్ట్రక్టర్‌ను ఎలా అమలు చేయాలి?



కన్స్ట్రక్టర్లను అర్థం చేసుకోవడం చాలా మందికి ఒక ఎనిగ్మా. C ++ లో కాపీ కన్స్ట్రక్టర్ యొక్క భావనను డీమిస్టిఫై చేయడానికి ఈ వ్యాసం మీకు సహాయం చేస్తుంది

అవగాహన కన్స్ట్రక్టర్లు చాలా మందికి ఎనిగ్మాగా ఉంది. C ++ లో కాపీ కన్స్ట్రక్టర్ యొక్క భావనను డీమిస్టిఫై చేయడానికి ఈ వ్యాసం మీకు సహాయం చేస్తుంది. ఈ వ్యాసంలో క్రింది గమనికలు కవర్ చేయబడతాయి,

కాబట్టి ప్రారంభిద్దాంC ++ లో కాపీ కన్స్ట్రక్టర్ పై ఈ కథనంతో





కాపీ కన్స్ట్రక్టర్ అనేది ఒక కన్స్ట్రక్టర్, ఇది ఒక తరగతి యొక్క వస్తువును అదే తరగతి యొక్క మరొక వస్తువును ఉపయోగించి ప్రారంభిస్తుంది.

సింటాక్స్:



మేము విలువను స్థిరంగా ఉంచాలనుకుంటున్నాము మరియు అది కోడ్‌లో ఎక్కడో సవరించబడలేదని నిర్ధారించుకోవాలనుకుంటున్నాము. డిఫాల్ట్ కన్స్ట్రక్టర్ వలె, కంపైలర్ చేత కాపీ కన్స్ట్రక్టర్ కూడా అందించబడుతుంది. దీనిని డిఫాల్ట్ కాపీ కన్స్ట్రక్టర్ అంటారు. కాపీ కన్స్ట్రక్టర్లను ప్రైవేట్‌గా చేయవచ్చు. మేము కాపీ కన్స్ట్రక్టర్‌ను ప్రైవేట్‌గా చేసినప్పుడు తరగతి వస్తువులను కాపీ చేయలేము.

ఇక్కడ ఒక ఉదాహరణ కోడ్ ఉంది :

# నేమ్‌స్పేస్ std క్లాస్ టెస్ట్ {ప్రైవేట్: int x పబ్లిక్: టెస్ట్ (int x1) {x = x1} test (const test & t2) {x = t2.x} int getX () {return x}} int main () {పరీక్ష t1 (7) // సాధారణ కన్స్ట్రక్టర్‌ను ఇక్కడ పిలుస్తారు పరీక్ష t2 = t1 // కాపీ కన్స్ట్రక్టర్‌ను ఇక్కడ కౌట్ అంటారు<< 't1.x = ' << t1.getX() cout << 'nt2.x = ' << t2.getX() return 0 } 

అవుట్పుట్:



సి ++ లో అవుట్పుట్-కాపీ కన్స్ట్రక్టర్ - ఎడురేకా

వివరణ

పై ప్రోగ్రామ్ కాపీ కన్స్ట్రక్టర్ యొక్క ప్రాథమిక డెమో. మాకు క్లాస్ టెస్ట్ ఉంది, టైప్ Int యొక్క ప్రైవేట్ డేటా సభ్యుడు x అని పిలుస్తారు. అప్పుడు మనకు పారామీటర్ చేయబడిన కన్స్ట్రక్టర్ ఉంది, ఇది x వేరియబుల్స్ కు 7 ని కేటాయిస్తుంది. మాకు కాపీ కన్స్ట్రక్టర్ ఉంది, ఇది t2 విలువను t1 విలువతో నిర్ధారిస్తుంది. T2 యొక్క చిరునామా పంపబడుతుంది, ఇది t1 విలువను కలిగి ఉంటుంది మరియు x కు కేటాయించబడుతుంది. X విలువను తిరిగి ఇచ్చే గెట్ ఫంక్షన్ ఉంది.

ప్రధాన ఫంక్షన్ t1 అని పిలువబడే తరగతి పరీక్ష యొక్క వస్తువును కలిగి ఉంది. ఈ వస్తువుతో అనుబంధించబడిన విలువ ఉంది, ఇది పరామితి. ప్రధాన ఫంక్షన్ క్లాస్ పరీక్ష యొక్క మరొక వస్తువు t2 అని పిలువబడుతుంది. T1 వేరియబుల్ ఉపయోగించి ఇది ప్రారంభించబడుతుంది మరియు కాపీ కన్స్ట్రక్టర్‌ను ఇక్కడ పిలుస్తారు. చివరగా, x విలువను పొందడానికి t1 మరియు t2 లకు సంబంధించి గెట్ ఫంక్షన్ అంటారు.

రకాలు

ఫెయిల్ ఫాస్ట్ వర్సెస్ ఫెయిల్ సేఫ్

కాపీ కన్స్ట్రక్టర్‌లో రెండు రకాలు ఉన్నాయి.
⦁ నిస్సార కాపీ కన్స్ట్రక్టర్
డీప్ కాపీ కన్స్ట్రక్టర్

C ++ లో కాపీ కన్స్ట్రక్టర్ పై ఈ కథనంతో కదులుతోంది

నిస్సార కాపీ కన్స్ట్రక్టర్:

నిస్సార కాపీ కన్స్ట్రక్టర్ డిఫాల్ట్ కాపీ కన్స్ట్రక్టర్.

పైథాన్‌లో దశాంశాన్ని బైనరీగా మార్చడం ఎలా

ఉదాహరణ:

ఇద్దరు వ్యక్తులు ఒకే సమయంలో డేటాబేస్ను యాక్సెస్ చేస్తారు మరియు రెండు వేర్వేరు వ్యవస్థలపై విలువలకు మార్పులు చేస్తారు. అప్పుడు వారు డేటాబేస్లో మార్పులు చేస్తే, ఈ రెండు మార్పులు డేటాబేస్లో చూపబడతాయి. రెండు వస్తువులు ఒకే మెమరీ స్థానానికి సూచించబడతాయి. ఇది నిస్సార కాపీ కన్స్ట్రక్టర్. మేము డిఫాల్ట్ కాపీ కన్స్ట్రక్టర్‌తో పనిచేస్తున్నప్పుడు ఇది ఎక్కువగా జరుగుతుంది. దీనికి ఉదాహరణ కోడ్ ఇక్కడ ఉంది: నిస్సార కాపీ కన్స్ట్రక్టర్:

# నేమ్‌స్పేస్ std క్లాస్ టెస్ట్ {పబ్లిక్: int y, z test (int y1, int z1) {y = y1 z = z1}} int main () {a (7,13) cout ను పరీక్షించండి<<'the sum is: '<< a.y+a.z return 1 } 

అవుట్పుట్:

వివరణ:

పై కోడ్‌లో, కంపైలర్ అందించిన డిఫాల్ట్ కాపీ కన్స్ట్రక్టర్‌ని ఉపయోగిస్తాము. అందువల్ల ఇది నిస్సార కాపీ కన్స్ట్రక్టర్.

C ++ లో కాపీ కన్స్ట్రక్టర్ పై ఈ కథనంతో కదులుతోంది

డీప్ కాపీ కన్స్ట్రక్టర్

డీప్ కాపీ కన్స్ట్రక్టర్ అనేది వినియోగదారు నిర్వచించిన కాపీ కన్స్ట్రక్టర్.
ఉదాహరణకి:
ఇద్దరు వ్యక్తులు తప్పనిసరిగా ప్రెజెంటేషన్ చేసినప్పుడు మరియు వారిద్దరూ ఒకే మూలం నుండి కాపీ చేసినప్పుడు, కాపీలు వేరుగా ఉంటాయి. కాబట్టి, మీరు మార్పులు చేసినప్పుడు ఇతర కాపీ మాత్రమే ప్రభావితం కాదు. ఇది డీప్ కాపీ కన్స్ట్రక్టర్. రెండు వస్తువులు వేర్వేరు మెమరీ స్థానాల్లో సూచించబడతాయి మరియు ఒకదానిలో మార్పులు మరొకదానిపై ప్రభావం చూపవు. మెమరీ డైనమిక్‌గా కేటాయించబడుతుంది.

దీనికి ఉదాహరణ కోడ్ ఇక్కడ ఉంది: డీప్ కాపీ కన్స్ట్రక్టర్:

# నేమ్‌స్పేస్ std క్లాస్ టెస్ట్ {ప్రైవేట్: int x పబ్లిక్: టెస్ట్ (int x1) {x = x1} test (const test & t2) {x = t2.x} int getX () {return x}} int main () {పరీక్ష t1 (7) // సాధారణ కన్స్ట్రక్టర్‌ను ఇక్కడ పిలుస్తారు పరీక్ష t2 = t1 // కాపీ కన్స్ట్రక్టర్‌ను ఇక్కడ కౌట్ అంటారు<< 't1.x = ' << t1.getX() cout << 'nt2.x = ' << t2.getX() return 0 } 

అవుట్పుట్:

వివరణ

ఇదే విధమైన అవుట్పుట్ ఇస్తూ మేము పైన ఉపయోగించిన అదే కోడ్. ఇది వినియోగదారు నిర్వచించిన కాపీ కన్స్ట్రక్టర్ మరియు అందువల్ల ఇది డీప్ కాపీ కన్స్ట్రక్టర్.

ఈ విధంగా మేము ‘సి ++ లో కన్స్ట్రక్టర్‌ను కాపీ చేయి’ అనే వ్యాసం యొక్క ముగింపుకు వచ్చాము. మీరు మరింత తెలుసుకోవాలనుకుంటే, చూడండి విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఎడురేకా యొక్క జావా J2EE మరియు SOA శిక్షణ మరియు ధృవీకరణ కోర్సు కోర్ మరియు అధునాతన జావా భావనలతో పాటు హైబర్నేట్ & స్ప్రింగ్ వంటి వివిధ జావా ఫ్రేమ్‌వర్క్‌ల కోసం మీకు శిక్షణ ఇవ్వడానికి రూపొందించబడింది.

మాకు ప్రశ్న ఉందా? దయచేసి ఈ బ్లాగ్ యొక్క వ్యాఖ్యల విభాగంలో దీనిని ప్రస్తావించండి మరియు మేము వీలైనంత త్వరగా మిమ్మల్ని సంప్రదిస్తాము.