சி ++ இல் பெயர்வெளி பற்றி நீங்கள் தெரிந்து கொள்ள வேண்டிய அனைத்தும்



இந்த கட்டுரை சி ++ இல் பெயர்வெளி பற்றிய விரிவான மற்றும் விரிவான அறிவை உங்களுக்கு வழங்கும். எந்தவொரு நிரலிலும் இது பல்வேறு வகைகள் மற்றும் பயன்கள்.

சி ++ இல் உள்ள பெயர்வெளி குறியீட்டை தருக்க குழுக்களாக ஒழுங்கமைக்கவும், குறிப்பாக உங்கள் கோட்பேஸில் பல நூலகங்களை உள்ளடக்கியிருக்கும்போது ஏற்படக்கூடிய பெயர் மோதல்களைத் தடுக்கவும் பயன்படுத்தப்படுகிறது. இந்த கட்டுரையில் பின்வரும் சுட்டிகள் உள்ளடக்கப்பட்டிருக்கும்:

பெயர்வெளியின் தேவை

ஒரு சூழ்நிலையைக் கவனியுங்கள், ஏபிசி () எனப்படும் ஒரு செயல்பாட்டைக் கொண்ட சில குறியீட்டை நாங்கள் எழுதுகிறோம், மேலும் மற்றொரு முன் வரையறுக்கப்பட்ட நூலகம் உள்ளது, இது ஏபிசி () அதே செயல்பாட்டைக் கொண்டுள்ளது. இப்போது தொகுக்கும் நேரத்தில், எங்கள் குறியீட்டிற்குள் நாம் குறிப்பிடும் ஏபிசி () செயல்பாட்டின் எந்த பதிப்பை தொகுப்பிற்கு எந்த துப்பும் இல்லை.





சி ++ இல் பெயர்வெளி

இந்த சிரமத்தை சமாளிக்க பெயர்வெளி வடிவமைக்கப்பட்டுள்ளது மற்றும் வெவ்வேறு நூலகங்களில் கிடைக்கும் அதே பெயருடன் ஒத்த செயல்பாடுகள், மாறிகள், வகுப்புகள் போன்றவற்றை வேறுபடுத்த கூடுதல் தகவலாக பயன்படுத்தப்படுகிறது. பெயர்வெளியைப் பயன்படுத்தி, பெயர்கள் வரையறுக்கப்பட்ட சூழலை நாம் வரையறுக்கலாம். சாராம்சத்தில், ஒரு பெயர்வெளி ஒரு நோக்கத்தை வரையறுக்கிறது.



அனைத்து சி ++ நிலையான நூலக வகைகளும் செயல்பாடுகளும் எஸ்.டி.டி பெயர்வெளியில் அல்லது எஸ்.டி.டி-க்குள் உள்ளமைக்கப்பட்ட பெயர்வெளிகளில் அறிவிக்கப்படுகின்றன, எனவே இது பெரும்பாலான நிரல்களில் பரவலாகப் பயன்படுத்தப்படுகிறது.

ஒரு பெயர்வெளியை வரையறுத்தல்

பெயர்வெளியை வரையறுக்க நாம் பெயர்வெளியைத் திறந்து, பெயர்வெளியின் பெயரை பின்வருமாறு தொடங்குகிறோம்:

namespace namespace_name {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 }

வெளியீடு:



மேலேயுள்ள எடுத்துக்காட்டில், ஃபங்க் () செயல்பாட்டை இரண்டு வெவ்வேறு முறை வரையறுக்க, நாங்கள் பெயர்வெளி கருத்தை பயன்படுத்துகிறோம். பெயர்வெளியின் முதல்_ செயல்பாட்டின் கீழ் முதல் செயல்பாட்டை வரையறுக்கிறோம்பெயர்வெளியின் கீழ் இரண்டாவது செயல்பாடு இரண்டாவது_ செயல்பாடு. இந்த செயல்பாடுகளை அழைக்க நாம் பின்வரும் முறையில் ஸ்கோப் ரெசல்யூஷன் ஆபரேட்டரைப் பயன்படுத்துகிறோம் - first_function :: func () மற்றும் second_function :: func ().

சி ++ இல் பெயர்வெளியைப் பயன்படுத்துதல்

நிரலில் ஒரு பெயர்வெளியைப் பயன்படுத்த மூன்று வழிகள் உள்ளன,

  1. பயன்படுத்தும் உத்தரவு
  2. பயன்படுத்துதல்-அறிவிப்பு
  3. ஸ்கோப் ரெசல்யூஷன் ஆபரேட்டர் (: :)

பயன்படுத்தும் உத்தரவு

உடன் பெயர்வெளிகளைத் தயாரிப்பதை நாம் தவிர்க்கலாம் பயன்படுத்தி பெயர்வெளி உத்தரவு. பயன்படுத்தி உலகளாவிய நோக்கத்துடன் உங்கள் நிரலில் முழு பெயர்வெளியை இறக்குமதி செய்ய திறவுச்சொல் எங்களை அனுமதிக்கிறது. எங்கள் தேவைக்கேற்ப ஒரு பெயர்வெளியை மற்றொரு பெயர்வெளியில் அல்லது எந்த நிரலிலும் இறக்குமதி செய்ய இதைப் பயன்படுத்தலாம்.

Namespace_first.h என்ற தலைப்பு கோப்பைக் கவனியுங்கள்:

பெயர்வெளி முதல் {int ஒரு வகுப்பு முதல்_ வகுப்பு {int i}}

Namespace_second.h கோப்பில் மேலே உள்ள பெயர்வெளி தலைப்பு கோப்பு உட்பட: “Namespace_first.h”

ஜாவாவில் ஒரு பொருள் ஒரு வரிசை
பெயர்வெளி இரண்டாவது name பெயர்வெளியைப் பயன்படுத்துதல் முதல் முதல்_ வகுப்பு obj int y}

பெயர்வெளி_மண்டலத்தை பெயர்வெளி_செகண்டில் இறக்குமதி செய்கிறோம், எனவே வகுப்பு முதல்_ வகுப்பு இப்போது பெயர்வெளியில்_செகண்ட் கிடைக்கும். எனவே பின்வரும் நிரலை ஒரு தனி கோப்பில் எழுதலாம், new_file.cpp என்று சொல்லலாம்.

# 'பெயர்வெளி_செகண்ட்.ஹெச்' ​​வெற்றிட சோதனை () names பெயர்வெளியைப் பயன்படுத்துதல் இரண்டாவது // வகுப்பின் முதல்_வழங்கல் முதல்_குழாய் ஆப் 2 ஐ உருவாக்குகிறது

எனவே , நீங்கள் எங்கு வேண்டுமானாலும் சி ++ இல் பெயர்வெளியைப் பயன்படுத்துவது மிகவும் எளிதானது.

பயன்படுத்துதல்-அறிவிப்பு

பயன்பாட்டு-அறிவிப்பில், ஒரு குறிப்பிட்ட பெயரை ஒரு நேரத்தில் இறக்குமதி செய்கிறோம், இது தற்போதைய நோக்கத்திற்குள் மட்டுமே கிடைக்கிறது, மேலும் இது ஸ்கோப் தீர்மானத்தின் உதவியுடன் அழைக்கப்படுகிறது. குறிப்பு: பயன்பாட்டு-அறிவிப்புடன் இறக்குமதி செய்யப்பட்ட பெயர், உத்தரவைப் பயன்படுத்தி இறக்குமதி செய்யப்பட்ட பெயரை மேலெழுதக்கூடும். இதை நாம் கீழேயுள்ள எடுத்துக்காட்டில் காணலாம்.

New_File.h என்ற தலைப்பு கோப்பைக் கருத்தில் கொள்வோம்:

பெயர்வெளி முதல் {வெற்றிட A () {cout<< 'A of First namespacen' } } namespace Second { void A() { cout << 'A of Second namespacen' } }

இப்போது கீழே உள்ள குறியீட்டைக் கொண்டு New_file_2.cpp என்ற பெயரில் ஒரு புதிய நிரல் கோப்பை உருவாக்குவோம்:

# 'புதிய_ஃபைல்.ஹெச்' ​​வெற்றிட பி () {பெயர்வெளியைப் பயன்படுத்துதல் முதல் // இரண்டாவது பயன்படுத்தி கட்டளையைப் பயன்படுத்துதல் :: ஒரு // அறிவிப்பைப் பயன்படுத்துதல் முதல் :: முதல் (ஏ () // முதல் பெயர்வெளியின் வகுப்பு ஏ () () இரண்டாவது பெயர்வெளி}

ஸ்கோப் ரெசல்யூஷன் ஆபரேட்டர் (: :)

பெயர்வெளியில் அறிவிக்கப்பட்ட எந்த பெயரையும் பெயர்வெளியின் பெயர் மற்றும் நோக்கம் தீர்மானத்தைப் பயன்படுத்தி நாம் தெளிவாகக் குறிப்பிடலாம் “ :: ' அடையாளங்காட்டியுடன் ஆபரேட்டர்.

பெயர்வெளி புதிய_வெளி {வகுப்பு X {நிலையான எண்ணாக நான் பொது: வெற்றிட ஃபங்க் () class // வகுப்பு பெயர் அறிவிப்பு வகுப்பு Y} // நிலையான வகுப்பு மாறி எண்ணைத் துவக்குகிறது புதிய_வெளி :: எக்ஸ் :: நான் = 23 வகுப்பு புதிய_வெளி :: Y {int ஒரு பொது: int getdata () out cout<< a } // Constructor declaration Y() } // Constructor definition explicitly New_space::Y::Y() { a=0 }

சி ++ இல் இடைவிடாத பெயர்வெளி

சி ++ இல் ஒரு பெயர்வெளியை பல பகுதிகளாக வரையறுக்க முடியும் என்பது எங்களுக்குத் தெரியும், எனவே இது தனித்தனியாக வரையறுக்கப்பட்ட பகுதிகளின் கூட்டுத்தொகையால் ஆனது. எனவே, பெயர்வெளியின் ஒரு பகுதிக்கு மற்றொரு கோப்பில் வரையறுக்கப்பட்ட பெயர் தேவைப்பட்டால், அந்த பெயர் இன்னும் அதன் நோக்கத்தில் அறிவிக்கப்பட வேண்டும். பின்வரும் பெயர்வெளியை பின்வரும் முறையில் எழுதுவது ஒரு புதிய பெயர்வெளியை வரையறுக்கிறது அல்லது ஏற்கனவே உள்ள ஒன்றிற்கு புதிய கூறுகளை சேர்க்கிறது:

பெயர்வெளி பெயர்வெளி_பெயர் code // குறியீடு உடல்}

சி ++ இல் உள்ளமை நேம்ஸ்பேஸ்

பெயர்வெளிகளை எளிதில் கூடு கட்டலாம் மற்றும் ஒரு பெயர்வெளியை மற்றொரு பெயர்வெளியில் பின்வருமாறு வரையறுக்கலாம்:

namespace namespace_name1 {// பெயர்வெளியின் குறியீடு உடல்_பெயர் 1 பெயர்வெளி பெயர்வெளி_பெயர் 2 {// குறியீடு உடல் உள்ளமைக்கப்பட்ட பெயர்ப்பெயர்_பெயர் 2}}

இதன் மூலம், சி ++ கட்டுரையில் பெயர்வெளியின் முடிவுக்கு வருகிறோம். சி ++ இல் ஒரு பெயர்வெளி எது, அதை வரையறுக்கும் வெவ்வேறு வழிகள் என்ன என்பது பற்றி உங்களுக்கு ஒரு யோசனை வந்துவிட்டது என்று நம்புகிறேன். நீங்கள் மேலும் அறிய விரும்பினால், பாருங்கள் எடூரேகா, நம்பகமான ஆன்லைன் கற்றல் நிறுவனம். எடுரேகாவின் ஜாவா ஜே 2 இஇ மற்றும் எஸ்ஓஏ பயிற்சி மற்றும் சான்றிதழ் பாடநெறி, முக்கிய மற்றும் மேம்பட்ட ஜாவா கருத்தாக்கங்களுக்கும், ஹைபர்னேட் & ஸ்பிரிங் போன்ற பல்வேறு ஜாவா கட்டமைப்புகளுக்கும் பயிற்சி அளிக்க வடிவமைக்கப்பட்டுள்ளது.

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? தயவுசெய்து இந்த வலைப்பதிவின் கருத்துகள் பிரிவில் குறிப்பிடவும், விரைவில் நாங்கள் உங்களைத் தொடர்புகொள்வோம்.