C++ Const Function எடுத்துக்காட்டுகள்

C Const Function Etuttukkattukal



இந்தக் கட்டுரை C++ இல் செயல்பாட்டுடன் பயன்படுத்தப்படும் 'const' முக்கிய வார்த்தையில் கவனம் செலுத்துகிறது. நிரலின் செயல்பாட்டின் போது மாற்ற முடியாத நிலையான மதிப்பு 'const' முக்கிய வார்த்தையாக குறிப்பிடப்படுகிறது. C++ இல் உள்ள 'const' செயல்பாடுகள், தரவு உறுப்பினர்கள் தங்கள் வகுப்பில் மாற்றப்படுவதற்கு தடைசெய்யப்பட்ட செயல்பாடுகளாகும். 'cont' செயல்பாடுகள் திறமையாகப் பயன்படுத்தப்படுகின்றன, ஏனெனில் அவை பொருளின் மதிப்பில் எதிர்பாராத மாற்றங்களைத் தவிர்க்கலாம்.

எடுத்துக்காட்டு 1: C++ இல் கான்ஸ்ட் உறுப்பினர் செயல்பாட்டின் நிரல்

இங்கே, எங்களிடம் const Member செயல்பாட்டின் எளிய நிரல் உள்ளது:

# அடங்கும்
பயன்படுத்தி பெயர்வெளி வகுப்பு ;
வர்க்கம் என் வகுப்பு {
முழு எண்ணாக ஒன்றில் ;
பொது :
என் வகுப்பு ( முழு எண்ணாக n = 0 ) {
ஒன்றில் = n ;
}
முழு எண்ணாக பெறுமதிப்பு ( ) நிலையான {
திரும்ப ஒன்றில் ;
}
} ;
முழு எண்ணாக முக்கிய ( ) {
நிலையான MyClass c ( 30 ) ;
MyClass c1 ( 5 ) ;
கூட் << 'பொருளைப் பயன்படுத்தும் எண் c : ' << c. பெறுமதிப்பு ( ) ;
கூட் << ' \n பொருள் c1 ஐப் பயன்படுத்தும் எண் : ' << c1. பெறுமதிப்பு ( ) ;
திரும்ப 0 ;
}

ஆரம்பத்தில், நிரல் உள்ளீடு/வெளியீட்டு ஸ்ட்ரீம்களை இயக்கும் தலைப்புக் கோப்பை நாங்கள் வரையறுக்கிறோம். பின்னர், 'MyClass' வகுப்பை அமைக்கிறோம், அங்கு நாம் ஒரு 'num' மாறி மற்றும் MyClass() செயல்பாடு மற்றும் getVal() செயல்பாட்டின் உறுப்பினர் செயல்பாடுகளை அறிவிக்கிறோம். MyClass() செயல்பாட்டின் உள்ளே, 'n' அளவுருவை '0' மதிப்புடன் அமைக்கிறோம். பின்னர், “n” மதிப்புரு “num” மாறிக்கு ஒதுக்கப்படுகிறது. அடுத்து, 'const' முக்கிய வார்த்தையுடன் getVal() செயல்பாட்டை அழைக்கிறோம், இது செயல்பாட்டின் அழைப்பில் பொருளின் தற்போதைய நிலையை மாற்ற முடியாது என்பதைக் குறிக்கிறது. getVal() செயல்பாடு 'எண்' உறுப்பினர் மாறியை வழங்குகிறது.







இறுதியாக, நாம் முக்கிய() செயல்பாட்டை அடைகிறோம். இங்கே, MyClass() செயல்பாட்டின் “c” மற்றும் “c1” ஆப்ஜெக்ட்களை வரையறுக்கிறோம், மேலும் இந்த பொருள்களுக்கு மதிப்புகளையும் அனுப்புகிறோம். 'c' ஆப்ஜெக்ட் 'const' முக்கிய வார்த்தையுடன் அமைக்கப்பட்டுள்ளது, இந்த பொருளுக்கு ஒதுக்கப்பட்ட மதிப்பை மாற்ற முடியாது என்பதைக் குறிக்கிறது.



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







எடுத்துக்காட்டு 2: C++ இல் வகுப்பிற்கு வெளியே ஒரு கான்ஸ்ட் உறுப்பினர் செயல்பாட்டின் நிரல்

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

# அடங்கும்
பயன்படுத்தி பெயர்வெளி வகுப்பு ;

வர்க்கம் புதிய வகுப்பு {
முழு எண்ணாக நான் ;

பொது :
வெற்றிடமானது பதிவு_பதிவு ( முழு எண்ணாக ) ;

முழு எண்ணாக பெற_பதிவு ( ) நிலையான ;
} ;

வெற்றிடமானது புதிய வகுப்பு :: பதிவு_பதிவு ( முழு எண்ணாக எக்ஸ் ) { நான் = எக்ஸ் ; }
முழு எண்ணாக புதிய வகுப்பு :: பெற_பதிவு ( ) நிலையான { திரும்ப நான் ; }

முழு எண்ணாக முக்கிய ( )
{
புதிய வகுப்பு சி ;
c. பதிவு_பதிவு ( 10 ) ;
கூட் << c. பெற_பதிவு ( ) ;

திரும்ப 0 ;
}

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



இதேபோல், “i” மாறி மதிப்பை மீட்டெடுக்க எங்களிடம் get_record() செயல்பாடு வரையறை உள்ளது. பின்னர், 'நியூ கிளாஸ்' வகுப்பின் 'சி' பொருளின் அறிவிப்பு இருக்கும் முக்கிய() செயல்பாட்டை அமைக்கிறோம். பின்னர், 'set_record', ஒரு non-const உறுப்பினர் செயல்பாடு, 'z' மாறிக்கு மதிப்பை ஒதுக்க அழைக்கப்படுகிறது. தொடர்ந்து, “i” இன் மதிப்பை அச்சிட get_record() const Member செயல்பாட்டை அழைக்கிறோம்.

பிரைவேட் மெம்பர் மாறியின் மதிப்பு கான்ஸ்ட் மெம்பர் செயல்பாட்டால் அழைக்கப்படுகிறது மற்றும் பின்வரும் வரியில் காட்டப்படுகிறது:

எடுத்துக்காட்டு 3: ஒரு கான்ஸ்ட் உறுப்பினர் செயல்பாட்டின் நிரல் வகுப்பிற்கு வெளியே ஒரு சுயாதீனமான செயல்பாடாக வரையறுக்கப்பட்டுள்ளது

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

#உள்
பயன்படுத்தி பெயர்வெளி வகுப்பு ;
வர்க்கம் சமன்பாடு {
முழு எண்ணாக n1,n2 ;
பொது :
வெற்றிடமானது தொகுப்பு_சமன்பாடு ( முழு எண்ணாக எக்ஸ், முழு எண்ணாக மற்றும் )
{
n1 = எக்ஸ் ;
n2 = மற்றும் ;
}
வெற்றிடமானது காட்ட_சமன்பாடு ( )
{
கூட் << 'சமன்பாடு:' << n1 << '+' << n2 << 'b' << endl ;
}
நண்பர் வெற்றிடமானது வேடிக்கையாக இருக்கிறது ( நிலையான சமன்பாடு ) ;
} ;
வெற்றிடமானது வேடிக்கையாக இருக்கிறது ( நிலையான சமன்பாடு obj )
{
கூட் << 'செயல்பாட்டைப் பயன்படுத்தும் சமன்பாடு:' << obj. n1 << '+' << obj. n2 << 'b' << endl ;
}
முழு எண்ணாக முக்கிய ( )
{
சமன்பாடு obj ;
obj. தொகுப்பு_சமன்பாடு ( 5 , 8 ) ;
obj. காட்ட_சமன்பாடு ( ) ;
வேடிக்கையாக இருக்கிறது ( obj ) ;
}

இங்கே, நாம் 'சமன்பாடு()' வகுப்பை உருவாக்கி, பின்னர் 'n1' மற்றும் 'n2' மாறிகளை அறிவிக்கிறோம். இங்கே, “n1” மற்றும் “n2” மாறிகளின் மதிப்புகளை அமைக்க set_Equation() உறுப்பினர் செயல்பாட்டையும் சேர்க்கிறோம். show_Equation() செயல்பாடு இந்த மாறிகளைப் பயன்படுத்தி உருவாக்கப்பட்ட சமன்பாட்டைக் காட்டுகிறது.

இதற்குப் பிறகு, 'நண்பர்' முக்கிய சொல்லைப் பயன்படுத்தி வரையறுக்கப்பட்ட funIs() இன் செயல்பாட்டு அறிவிப்பு எங்களிடம் உள்ளது. இந்த 'நண்பர்' முக்கிய வார்த்தையானது 'சமன்பாடு' வகுப்பின் தனிப்பட்ட உறுப்பினரை அணுக அனுமதிக்கிறது. அடுத்து, வகுப்பிற்கு வெளியே உள்ள 'funIs()' friend function ஐ அழைக்கிறோம் மற்றும் 'Equation' வகுப்பின் 'obj' அளவுருவை const என உள்ளீடு செய்கிறோம். முடிவில், எங்களிடம் ஒரு முக்கிய() செயல்பாடு உள்ளது, அங்கு 'சமன்பாடு' வகுப்பின் பொருளை அறிவிக்கிறோம். பின்னர், set_Equation() செயல்பாட்டைப் பயன்படுத்தி “n1” மற்றும் “n2” மாறிகளின் மதிப்புகளை அமைக்கிறோம். 'n1' மற்றும் 'n2' மாறிகள் show_Equation() செயல்பாட்டைப் பயன்படுத்தி அவற்றின் மதிப்புகளைக் காட்டப் பயன்படுத்தப்படுகின்றன. கடைசியாக, சமன்பாட்டைக் காண்பிக்க, 'சமன்பாடு' வகுப்பின் 'funIs' நண்பர் செயல்பாட்டை அழைக்கிறோம்.

const friend செயல்பாட்டைப் பயன்படுத்தும் சமன்பாடு மற்றும் சமன்பாடு வரியில் காட்டப்படும்:

எடுத்துக்காட்டு 4: C++ இல் மதிப்பைப் புதுப்பிக்க ஒரு கான்ஸ்ட் உறுப்பினர் செயல்பாட்டின் நிரல் (மோசமான நிலை)

'கான்ஸ்ட் உறுப்பினர் செயல்பாட்டின் உள்ளே' எனப்படும் மாறியின் மதிப்பை மாற்ற முயற்சிக்கும் கான்ஸ்ட் உறுப்பினர் செயல்பாட்டின் மோசமான சூழ்நிலையை நிரல் நிரூபிக்கிறது.

# அடங்கும்
பயன்படுத்தி பெயர்வெளி வகுப்பு ;

வர்க்கம் தகவல்கள் {
முழு எண்ணாக உள்ளே ;

பொது :
வெற்றிடமானது தொகுப்பு மதிப்பு ( முழு எண்ணாக நான் ) { உள்ளே = நான் ; }
முழு எண்ணாக பெறுமதிப்பு ( ) நிலையான
{

++ உள்ளே ;
திரும்ப உள்ளே ;
}

} ;

முழு எண்ணாக முக்கிய ( )
{
தரவு டி ;
ஈ. தொகுப்பு மதிப்பு ( இருபது ) ;
கூட் << endl << ஈ. பெறுமதிப்பு ( ) ;

திரும்ப 0 ;
}

இங்கே, நாம் முதலில் 'தரவு' வகுப்பை உருவாக்கி, வகுப்பிற்குள் 'v' மாறியை அறிவிக்கிறோம். இதற்குப் பிறகு, நாங்கள் 'பொது' முக்கிய சொல்லை அமைத்து, பின்னர் 'setValue()' இன் கிளாஸ் உறுப்பினர் செயல்பாடுகளை அறிவிப்போம், இது வகுப்பின் கட்டமைப்பாளரையும், வகுப்பின் கெட்டர் உறுப்பினர் செயல்பாட்டைக் குறிக்கும் getValue() ஐயும் குறிக்கிறது. setValue() செயல்பாடு 'i' மாறியை ஒரு அளவுருவாக எடுத்துக்கொள்கிறது. இந்த 'i' மாறியானது 'v' உறுப்பினர் மாறிக்கு ஒதுக்கப்பட்டுள்ளது.

இதற்குப் பிறகு, “v” மாறியின் மதிப்பை மீட்டெடுக்கும் getValue() செயல்பாட்டு வரையறை உள்ளது. getValue() செயல்பாடு “const” முக்கிய சொல்லுடன் அறிவிக்கப்படுவதால், “v” மாறியின் மதிப்பை எந்த நிலையிலும் புதுப்பிக்க முடியாது. இருப்பினும், 'v' மாறியை அதன் மதிப்பை மாற்ற வேண்டுமென்றே அதிகரிக்க முயற்சிக்கிறோம். நிரல் இந்த நிலையை அடையும் போது, ​​ஒரு பிழை வீசப்படுகிறது. கடைசியாக, 'டேட்டா' வகுப்பின் 'd' பொருளை வரையறுத்து, இந்த 'd' பொருளுக்கு '20' மதிப்பை அமைக்கும் முக்கிய() செயல்பாட்டு அழைப்பு எங்களிடம் உள்ளது. அதன் பிறகு, பொருளின் 'd' மதிப்பைப் பெற getValue() செயல்பாட்டை அழைக்கிறோம்.

ப்ராம்ட் முந்தைய செயலாக்கத்தின் முடிவுகளை உருவாக்குகிறது, அங்கு அது “++v” இல் பிழையை அளிக்கிறது, ஏனெனில் const member function objectகளின் மதிப்பை மாற்ற எங்களுக்கு அனுமதி இல்லை:

முடிவுரை

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