சி ++ வகுப்பு கட்டமைப்பாளர்கள்

C Class Constructors



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

இந்த கட்டுரையில், இந்த வகையான அனைத்து கட்டமைப்பாளர்களையும் எடுத்துக்காட்டுகளுடன் நாங்கள் திட்டமிடுவோம்.







உதாரணம் 1

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



முழு()

{

எக்ஸ்=ஐம்பது;

மற்றும்=இருபது;

};

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







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

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



$ ஜி++ -அல்லது filec filec.c

./filec

-ஓ கோப்பில் வெளியீட்டைச் சேமிக்கப் பயன்படுகிறது.

உதாரணம் 2

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

  • இது துவக்கப்படும்போது கட்டமைப்பாளர்களுக்குள் வெவ்வேறு மதிப்புகளுடன் வெவ்வேறு மாறிகள் துவக்கப் பயன்படுகிறது.
  • இது கன்ஸ்ட்ரக்டர் ஓவர்லோடிங்கில் பயன்படுத்தப்படுகிறது. இது பின்னர் கட்டுரையில் வரையறுக்கப்பட்டுள்ளது.

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

முழு( intஎக்ஸ்,intமற்றும்)

{

TO=எக்ஸ்;

பி=மற்றும்;

};

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

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

intgetX()

{

திரும்பக்கு;

};

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

முழு எண் v(70,55); {மறைமுகமான}

முழு எண் v=முழு(10,பதினைந்து); {வெளிப்படையான}

முடிவைக் காண்பிக்க, வகுப்பிற்குள் உருவாக்கப்பட்ட செயல்பாடுகளை பொருளைப் பயன்படுத்தி அழைப்போம். அதாவது v.getx ().

பதிவு பெறுவதற்கான முறை முன்பு அறிமுகப்படுத்தப்பட்டதைப் போன்றது.

உதாரணம் 3

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

சுவர்(சுவர்&பொருள்)

{

நீளம்=பொருள்நீளம்;

உயரம்=பொருள்உயரம்;

}

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

நகலெடுக்கப்பட்ட கட்டமைப்பாளரின் செயல்பாட்டு அழைப்பு இப்படி இருக்கும்.

சுவர் சுவர் 2=சுவர் 1;

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

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

உதாரணம் 4

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

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

// இரண்டு வாதங்களுடன் கட்டமைப்பாளர்

வடிவம்(intஎக்ஸ்,intமற்றும்)

{

க்கு=எக்ஸ்;

b=மற்றும்;

};

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

வடிவங்கள்;

வடிவம் s2(8);

வடிவம் s3(4,2);

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

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

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

முடிவுரை

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