சி ++ மற்றும் அதன் வகைகளில் சேமிப்பக வகுப்பு என்றால் என்ன?

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

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

ஆரம்பித்துவிடுவோம்.



சி ++ இல் சேமிப்பு வகுப்பு என்றால் என்ன?

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

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

சேமிப்பு வகுப்பின் வகைகள்

சி ++ திட்டத்தில் ஐந்து சேமிப்பு வகுப்புகள் உள்ளன:

  • ஆட்டோ
  • பதிவு
  • நிலையான
  • வெளிப்புறம்
  • மாற்றக்கூடியது

சேமிப்பக வகுப்புகள் ஒவ்வொன்றையும் விரிவாக விவாதிப்போம்.

ஆட்டோ சேமிப்பு வகுப்பு

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

ஆட்டோ மாறிகள் நோக்கம் அவை அறிவிக்கப்பட்ட செயல்பாடு அல்லது தொகுதிக்குள் உள்ளன & அந்த செயல்பாடு அல்லது தொகுதிக்கு வெளியே அதை அணுக முடியாது. ஆட்டோ மாறி அறிவிக்கப்பட்ட பெற்றோர் தொகுதி / செயல்பாட்டிற்குள் உள்ளமைக்கப்பட்ட தொகுதிகளுக்குள் இதை அணுகலாம்.

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

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

இயல்பாக, அறிவிக்கும் போது குப்பை மதிப்பு அவர்களுக்கு ஒதுக்கப்படுகிறது.

தொடரியல்:

தரவு வகை var_name1 [= மதிப்பு]

அல்லது

தானியங்கு தரவு வகை var_name1 [= மதிப்பு]

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

சேமிப்பு வகுப்பை பதிவுசெய்க

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

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

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

மாறியின் அதிகபட்ச அளவு பதிவின் அளவிற்கு சமம் (அதாவது தோராயமாக ஒரு சொல்). நினைவக இருப்பிடம் இல்லாததால், அதில் ஒரு அப்பட்டமான ‘&’ ஆபரேட்டர் பயன்படுத்தப்பட முடியாது.

தொடரியல்:

தரவுத்தொகுப்பு var_name1 ஐ பதிவுசெய்க [= மதிப்பு]

உதாரணமாக:

தொழிற்சங்க விதி பயன்படுத்தப்படுகிறது
int பதிவு எண்ணாக pi}

‘பதிவு’ என்பதை வரையறுப்பது என்பது ஒரு பதிவேட்டில் மாறி சேமிக்கப்படும் என்று அர்த்தமல்ல. வன்பொருள் மற்றும் செயல்படுத்தல் கட்டுப்பாடுகளைப் பொறுத்து இது ஒரு பதிவேட்டில் சேமிக்கப்படலாம்.

பதிவு மற்றும் தானியங்கு சேமிப்பு வகுப்புகளின் உதாரணத்தைப் பார்ப்போம்.

உதாரணமாக:

# பெயர்வெளியைப் பயன்படுத்துவதை உள்ளடக்குங்கள் // வெளிப்புறமாக மாற்றப்பட வேண்டிய மாறியை அறிவித்தல் // ஒரு உள் மதிப்பை x int x void autoStorageClass () {printf ('n தன்னியக்க வகுப்பை நிரூபித்தல்') // ஒரு ஆட்டோ மாறியை அறிவித்தல் (வெறுமனே // எழுதுதல் 'int a = 32' வேலை செய்கிறது) int num = 32 // ஆட்டோ மாறி 'a' printf ('மாறியின் மதிப்பு' எண் '' 'தானாக அறிவிக்கப்பட்டுள்ளது:% dn', எண்) printf ( '--------------------------------')} வெற்றிட பதிவுசெய்த ஸ்டோரேஜ் கிளாஸ் () {printf ('n பதிவு வகுப்பை நிரூபித்தல்') / / ஒரு பதிவு மாறி பதிவேட்டை அறிவித்தல் c = 'G' // பதிவு மாறி 'b' printf ஐ அச்சிடுகிறது ('பதிவின் மதிப்பு' c '' 'பதிவாக அறிவிக்கப்பட்டுள்ளது:% dn', c) printf ('---- ---------------------------- ')} int main () {// ஆட்டோ ஸ்டோரேஜ் கிளாஸை நிரூபிக்க autoStorageClass () // நிரூபிக்க பதிவு சேமிப்பக வகுப்பு பதிவுஸ்டோரேஜ் கிளாஸ் () திரும்ப 0}

வெளியீடு:

வெளியீடு - சி ++ - எடுரேகாவில் சேமிப்பு வகுப்புநிலையான சேமிப்பு வகுப்பு

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

நினைவகம் நிலையான மாறிக்கு ஒரு முறை மட்டுமே ஒதுக்கப்படுகிறது & புதிய நினைவகம் எதுவும் ஒதுக்கப்படவில்லை, ஏனெனில் அவை மீண்டும் அறிவிக்கப்படவில்லை. உலகளாவிய நிலையான மாறிகள் நிரலில் எங்கும் அணுகலாம். இயல்பாக, அவை கம்பைலரால் மதிப்பு 0 ஐ ஒதுக்குகின்றன.

சி ++ இல், ஒரு வகுப்பு தரவு உறுப்பினரில் நிலையானது பயன்படுத்தப்படும்போது, ​​அந்த உறுப்பினரின் ஒரே ஒரு நகலை மட்டுமே அதன் வகுப்பின் அனைத்து பொருட்களாலும் பகிர முடியும்.

தொடரியல்:

நிலையான தரவு வகை var_name1 [= மதிப்பு]

உதாரணமாக:

# வெற்றிட செயல்பாடு (வெற்றிடத்தை) நிலையான எண்ணாக சி = 5 // உலகளாவிய நிலையான மாறி பிரதான () {போது (சி--) {செயல்பாடு ()} திரும்ப 0} வெற்றிட செயல்பாடு (வெற்றிடத்தை) {நிலையான எண்ணாக cnt = 2 cnt ++ std :: cout<< 'cnt is ' << cnt std::cout << ' and c is ' << c << std::endl } 

வெளியீடு:

வெளிப்புற சேமிப்பு வகுப்பு

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

வெளிப்புற மாறிகளின் வாழ்நாள் அது அறிவிக்கப்பட்ட நிரல் நிறுத்தப்படும் வரை இருக்கும். எந்தவொரு செயல்பாட்டிலும் / தொகுதியிலும் அதன் அறிவிப்பு / வரையறைக்கு முன் ‘வெளிப்புற’ முக்கிய சொல்லை வைப்பதன் மூலம் ஒரு சாதாரண உலகளாவிய மாறியை வெளிப்புறமாகவும் செய்யலாம்.

நீங்கள் ‘வெளிப்புறம்’ பயன்படுத்தும் போது, ​​மாறியை துவக்க முடியாது, ஏனெனில் இது எல்லாவற்றையும் விட முன்னர் வரையறுக்கப்பட்ட சேமிப்பிட இடத்தில் மாறி பெயரை சுட்டிக்காட்டுகிறது.

தொடரியல்

வெளிப்புற தரவு வகை var_name1

உதாரணமாக

# int int cnt extern void write_extern () main () {cnt = 5 write_extern () include

இரண்டாவது கோப்பு: support.cpp

# வெளிப்புற எண்ணை உள்ளடக்கு cnt void write_extern (வெற்றிடத்தை) {std :: cout<< 'Count is ' << cnt << std::endl } 

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

$ g ++ main.cpp support.cpp -o எழுத

இது எழுதக்கூடிய இயங்கக்கூடிய நிரலை உருவாக்கும், எழுத்தை இயக்க முயற்சி செய்து முடிவை பின்வருமாறு சரிபார்க்கவும் & கழித்தல்

$. / எழுது

5

சி ++ இல் சேமிப்பக வகுப்போடு முன்னேறும்போது, ​​கடைசியாக, அதாவது மாற்றக்கூடிய சேமிப்பக வகுப்பைப் பார்ப்போம்.

மாற்றக்கூடிய சேமிப்பு வகுப்பு

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

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

பெரிய தரவு பகுப்பாய்வுகளின் பயன்பாடுகள்

சேமிப்பு வகுப்பு

முக்கிய சொல்

வாழ்நாள்

தெரிவுநிலை

தொடக்க மதிப்பு

தானியங்கி

ஆட்டோ

செயல்பாடு தொகுதி

உள்ளூர்

குப்பை

வெளிப்புறம்

வெளிப்புறம்

முழு திட்டம்

உலகளாவிய

பூஜ்யம்

நிலையான

நிலையான

முழு திட்டம்

mysql உடன் இணைக்க ஜாவா குறியீடு

உள்ளூர்

பூஜ்யம்

பதிவு

பதிவு

செயல்பாடு தொகுதி

உள்ளூர்

குப்பை

மாற்றக்கூடியது

மாற்றக்கூடியது

வர்க்கம்

உள்ளூர்

குப்பை

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

இவ்வாறு ‘சி ++ இல் சேமிப்பு வகுப்புகள்’ குறித்த இந்த கட்டுரையின் முடிவுக்கு வந்துள்ளோம்.

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

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