C ++ లోని నేమ్స్పేస్ కోడ్ను తార్కిక సమూహాలుగా నిర్వహించడానికి మరియు మీ కోడ్బేస్ బహుళ లైబ్రరీలను కలిగి ఉన్నప్పుడు సంభవించే పేరు గుద్దుకోవడాన్ని నివారించడానికి ఉపయోగించబడుతుంది. ఈ వ్యాసంలో ఈ క్రింది పాయింటర్లు కవర్ చేయబడతాయి:
పైథాన్లో ఫార్మాట్ అంటే ఏమిటి
- నేమ్స్పేస్ అవసరం
- C ++ లో నేమ్స్పేస్ను నిర్వచించడం
- నేమ్స్పేస్ను నిర్వచించేటప్పుడు గుర్తుంచుకోవలసిన పాయింట్లు
- సి ++ లో నేమ్స్పేస్ను ఉపయోగించడం
- నిరంతర నేమ్స్పేస్లు
- సమూహ నేమ్స్పేస్లు
నేమ్స్పేస్ అవసరం
ఒక పరిస్థితిని పరిశీలిస్తే, మేము abc () అని పిలువబడే కొన్ని కోడ్లను వ్రాస్తున్నాము మరియు మరొక ముందే నిర్వచించిన లైబ్రరీ అందుబాటులో ఉంది, అదే ఫంక్షన్ abc () కూడా ఉంది. ఇప్పుడు సంకలనం సమయంలో, కంపైలర్కు మన కోడ్లో ఏబిసి () ఫంక్షన్ యొక్క సంస్కరణను సూచిస్తున్నాం.
ఈ కష్టాన్ని అధిగమించడానికి నేమ్స్పేస్ రూపొందించబడింది మరియు విభిన్న లైబ్రరీలలో ఒకే పేరుతో సారూప్య విధులు, వేరియబుల్స్, క్లాసులు మొదలైన వాటిని వేరు చేయడానికి అదనపు సమాచారంగా ఉపయోగించబడుతుంది. నేమ్స్పేస్ను ఉపయోగించి, పేర్లు నిర్వచించబడిన సందర్భాన్ని మనం నిర్వచించవచ్చు. సారాంశంలో, నేమ్స్పేస్ పరిధిని నిర్వచిస్తుంది.
అన్ని C ++ ప్రామాణిక లైబ్రరీ రకాలు మరియు విధులు std నేమ్స్పేస్ లేదా నేమ్స్పేస్లలో std లోపల గూడులో ప్రకటించబడ్డాయి, కనుక ఇది చాలా ప్రోగ్రామ్లలో విస్తృతంగా ఉపయోగించబడుతుంది.
నేమ్స్పేస్ను నిర్వచించడం
నేమ్స్పేస్ను నిర్వచించడానికి మేము కీవర్డ్ నేమ్స్పేస్తో ప్రారంభిస్తాము, తరువాత నేమ్స్పేస్ పేరు క్రింది విధంగా ఉంటుంది:
నేమ్స్పేస్ నేమ్స్పేస్_పేరు {int a, b // కోడ్ డిక్లరేషన్లు, ఇక్కడ // a మరియు b లు // నేమ్స్పేస్_పేరు యొక్క పరిధిలో ప్రకటిస్తారు}
నేమ్స్పేస్ను నిర్వచించేటప్పుడు గుర్తుంచుకోవలసిన పాయింట్లు
- నేమ్స్పేస్ ప్రకటనలు ప్రపంచ పరిధిలో మాత్రమే కనిపిస్తాయి.
- నేమ్స్పేస్ ప్రకటనలకు ప్రాప్యత నిర్దేశకులు లేవు.
- నేమ్స్పేస్ డిక్లరేషన్లను మరొక నేమ్స్పేస్లో ఉంచవచ్చు.
- నేమ్స్పేస్ యొక్క నిర్వచనం యొక్క ముగింపు కలుపు తర్వాత సెమికోలన్ ఇవ్వవలసిన అవసరం లేదు.
- నేమ్స్పేస్ నిర్వచనాన్ని అనేక యూనిట్లపై విభజించవచ్చు.
# నేమ్స్పేస్ను ఉపయోగించడం చేర్చండి std నేమ్స్పేస్ first_function {void func () out cout<< 'Inside first_function' << endl } } namespace second_function { void func() { cout << 'Inside second_function' << endl } } int main () { // Calls function from first name space. first_function::func() // Calls function from second name space. second_function::func() return 0 }
అవుట్పుట్:
ఫంక్ () ఫంక్షన్ను రెండు వేర్వేరు సార్లు నిర్వచించడానికి పై ఉదాహరణలో, మేము నేమ్స్పేస్ భావనను ఉపయోగిస్తాము. మేము మొదటి ఫంక్షన్ను నేమ్స్పేస్ ఫస్ట్_ఫంక్షన్ కింద నిర్వచించాము మరియునేమ్స్పేస్ సెకండ్_ఫంక్షన్ కింద రెండవ ఫంక్షన్. ఈ ఫంక్షన్లను పిలవడానికి మేము ఈ క్రింది పద్ధతిలో స్కోప్ రిజల్యూషన్ ఆపరేటర్ని ఉపయోగిస్తాము - ఫస్ట్_ఫంక్షన్ :: ఫంక్ () మరియు సెకండ్_ఫంక్షన్ :: ఫంక్ ().
సి ++ లో నేమ్స్పేస్ను ఉపయోగించడం
ప్రోగ్రామ్లో నేమ్స్పేస్ను ఉపయోగించడానికి మూడు మార్గాలు ఉన్నాయి,
- ఉపయోగించి డైరెక్టివ్
- ఉపయోగించడం-ప్రకటన
- స్కోప్ రిజల్యూషన్ ఆపరేటర్ (: :)
ఉపయోగించి డైరెక్టివ్
మేము నేమ్స్పేస్లను సిద్ధం చేయడాన్ని నివారించవచ్చు ఉపయోగించి నేమ్స్పేస్ డైరెక్టివ్. ఉపయోగించి గ్లోబల్ స్కోప్తో మీ ప్రోగ్రామ్లోకి మొత్తం నేమ్స్పేస్ను దిగుమతి చేసుకోవడానికి కీవర్డ్ మాకు అనుమతిస్తుంది. మా అవసరానికి అనుగుణంగా నేమ్స్పేస్ను మరొక నేమ్స్పేస్ లేదా ఏదైనా ప్రోగ్రామ్లోకి దిగుమతి చేసుకోవడానికి దీనిని ఉపయోగించవచ్చు.
సోర్స్ సోర్స్ కోడ్ను విలీనం చేయండి c ++
Namespace_first.h అనే హెడర్ ఫైల్ను పరిగణించండి:
నేమ్స్పేస్ ఫస్ట్ {int క్లాస్ ఫస్ట్_క్లాస్ {int i}}
నేమ్స్పేస్_సెకండ్.హెచ్ ఫైల్లో పై నేమ్స్పేస్ హెడర్ ఫైల్తో సహా: “నేమ్స్పేస్_ఫస్ట్.హెచ్”
నేమ్స్పేస్ రెండవ {నేమ్స్పేస్ను ఉపయోగించడం మొదటి ఫస్ట్_క్లాస్ ఆబ్జెక్ట్ వై}
మేము నేమ్స్పేస్_ఫస్ట్ను నేమ్స్పేస్_సెకండ్లోకి దిగుమతి చేస్తాము, అందువల్ల క్లాస్ ఫస్ట్_క్లాస్ ఇప్పుడు నేమ్స్పేస్_సెకండ్లో అందుబాటులో ఉంటుంది. అందువల్ల మేము ఈ క్రింది ప్రోగ్రామ్ను ప్రత్యేక ఫైల్లో వ్రాయవచ్చు, new_file.cpp అని చెప్పండి.
# 'నేమ్స్పేస్_సెకండ్.హెచ్' శూన్య పరీక్ష () names నేమ్స్పేస్ ఉపయోగించి రెండవ // తరగతి ఫస్ట్_క్లాస్ ఫస్ట్_క్లాస్ ఆబ్జెక్ట్ 2 యొక్క వస్తువును సృష్టించడం}
అందువల్ల , మీకు కావలసిన చోట C ++ లో నేమ్స్పేస్ను ఉపయోగించడం డైరెక్టివ్ ఉపయోగించడం చాలా సులభం చేస్తుంది.
ఉపయోగించడం-ప్రకటన
ఉపయోగం-డిక్లరేషన్లో, ప్రస్తుత స్కోప్లో మాత్రమే అందుబాటులో ఉన్న ఒక సమయంలో మేము ఒక నిర్దిష్ట పేరును దిగుమతి చేస్తాము మరియు దీనిని స్కోప్ రిజల్యూషన్ సహాయంతో పిలుస్తారు. గమనిక: యూజింగ్-డిక్లరేషన్తో దిగుమతి చేసుకున్న పేరు డైరెక్టివ్ను ఉపయోగించి దిగుమతి చేసుకున్న పేరును భర్తీ చేస్తుంది. ఈ క్రింది ఉదాహరణలో మనం దీనిని చూడవచ్చు.
New_File.h అనే హెడర్ ఫైల్ను పరిశీలిద్దాం:
నేమ్స్పేస్ మొదటి {శూన్యమైన A () {కౌట్<< 'A of First namespacen' } } namespace Second { void A() { cout << 'A of Second namespacen' } }
ఇప్పుడు దిగువ కోడ్తో New_file_2.cpp పేరుతో క్రొత్త ప్రోగ్రామ్ ఫైల్ను సృష్టించండి:
పునరుత్పాదక ఫైబొనాక్సీ సి ++
# 'న్యూ_ఫైల్.హెచ్' శూన్యమైన బి () {నేమ్స్పేస్ను ఉపయోగించడం మొదటి // రెండవదాన్ని ఉపయోగించి డైరెక్టివ్ను ఉపయోగించడం :: ఎ // డిక్లరేషన్ను ఉపయోగించడం మొదట :: ఎ () // మొదటి నేమ్స్పేస్ యొక్క ఎ () // క్లాస్ ఎ () () రెండవ నేమ్స్పేస్}
స్కోప్ రిజల్యూషన్ ఆపరేటర్ (: :)
నేమ్స్పేస్ పేరు మరియు స్కోప్ రిజల్యూషన్ ఉపయోగించి నేమ్స్పేస్లో ప్రకటించిన ఏదైనా పేరును మేము స్పష్టంగా పేర్కొనవచ్చు “ :: ' ఐడెంటిఫైయర్తో ఆపరేటర్.
నేమ్స్పేస్ న్యూ_స్పేస్ {క్లాస్ X {స్టాటిక్ ఇంటెంట్ ఐ పబ్లిక్: శూన్య ఫన్క్ () class // క్లాస్ నేమ్ డిక్లరేషన్ క్లాస్ వై} // స్టాటిక్ క్లాస్ వేరియబుల్ ఇంటెంట్ను ప్రారంభిస్తోంది న్యూ_స్పేస్ :: ఎక్స్ :: ఐ = 23 క్లాస్ న్యూ_స్పేస్ :: వై {ఇంట్ పబ్లిక్: int getdata () out cout<< a } // Constructor declaration Y() } // Constructor definition explicitly New_space::Y::Y() { a=0 }
సి ++ లో నిరంతర నేమ్స్పేస్
మనకు తెలిసినట్లుగా, C ++ లోని నేమ్స్పేస్ను అనేక భాగాలుగా నిర్వచించవచ్చు, కనుక ఇది విడిగా నిర్వచించబడిన భాగాల మొత్తంతో రూపొందించబడింది. కాబట్టి, నేమ్స్పేస్లోని ఒక భాగానికి మరొక ఫైల్లో నిర్వచించబడిన పేరు అవసరమైతే, ఆ పేరు ఇప్పటికీ దాని పరిధిలో ప్రకటించబడాలి. కింది పద్ధతిలో కింది నేమ్స్పేస్ను వ్రాయడం క్రొత్త నేమ్స్పేస్ను నిర్వచిస్తుంది లేదా ఇప్పటికే ఉన్న వాటికి కొత్త అంశాలను జోడిస్తుంది:
నేమ్స్పేస్ నేమ్స్పేస్_పేరు code // కోడ్ బాడీ}
సి ++ లో నేమ్స్పేస్ నెస్టెడ్
నేమ్స్పేస్లను సులభంగా గూడు చేయవచ్చు మరియు మనం ఒక నేమ్స్పేస్ను మరొక నేమ్స్పేస్ లోపల ఈ క్రింది విధంగా నిర్వచించవచ్చు:
నేమ్స్పేస్ నేమ్స్పేస్_నేమ్ 1 {// కోడ్ బాడీ ఆఫ్ నేమ్స్పేస్_నేమ్ 1 నేమ్స్పేస్ నేమ్స్పేస్_నేమ్ 2 {// కోడ్ బాడీ నెస్టెడ్ నేమ్స్పేస్_నేమ్ 2}}
దీనితో, మేము సి ++ వ్యాసంలో నేమ్స్పేస్ ముగింపుకు వస్తాము. C ++ లో నేమ్స్పేస్ అంటే ఏమిటి మరియు దానిని నిర్వచించే వివిధ మార్గాలు ఏమిటి అనే దాని గురించి మీకు ఒక ఆలోచన వచ్చిందని నేను ఆశిస్తున్నాను. మీరు మరింత తెలుసుకోవాలనుకుంటే, చూడండి విశ్వసనీయ ఆన్లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఎడురేకా యొక్క జావా J2EE మరియు SOA శిక్షణ మరియు ధృవీకరణ కోర్సు కోర్ మరియు అధునాతన జావా భావనలతో పాటు హైబర్నేట్ & స్ప్రింగ్ వంటి వివిధ జావా ఫ్రేమ్వర్క్ల కోసం మీకు శిక్షణ ఇవ్వడానికి రూపొందించబడింది.
మాకు ప్రశ్న ఉందా? దయచేసి ఈ బ్లాగ్ యొక్క వ్యాఖ్యల విభాగంలో దీనిని ప్రస్తావించండి మరియు మేము వీలైనంత త్వరగా మిమ్మల్ని సంప్రదిస్తాము.