கட்டமைப்பாளருக்கும் அழிப்பாளருக்கும் இடையிலான வேறுபாடு

நூலாசிரியர்: Laura McKinney
உருவாக்கிய தேதி: 1 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 11 மே 2024
Anonim
Python Tutorial For Beginners | Python Full Course From Scratch | Python Programming | Edureka
காணொளி: Python Tutorial For Beginners | Python Full Course From Scratch | Python Programming | Edureka

உள்ளடக்கம்


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

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

ஒப்பீட்டு விளக்கப்படத்தின் உதவியுடன் கட்டமைப்பாளருக்கும் அழிப்பாளருக்கும் இடையிலான சில அடிப்படை வேறுபாடுகளை மேலோட்டமாகக் காண்போம்


  1. ஒப்பீட்டு விளக்கப்படம்
  2. வரையறை
  3. முக்கிய வேறுபாடுகள்
  4. முடிவுரை

ஒப்பீட்டு விளக்கப்படம்:

ஒப்பிடுவதற்கான அடிப்படைகன்ஸ்ட்ரக்டர்Destructor
நோக்கம்

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

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


கட்டமைப்பாளரின் வரையறை:

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

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

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

கட்டமைப்பாளர்களின் வகைகள்

இயல்புநிலை, அளவுரு மற்றும் நகல் கட்டமைப்பாளர்கள் என மூன்று வகையான கட்டமைப்பாளர்கள் உள்ளனர்.

  • இயல்புநிலை கட்டமைப்பாளர்: இது ஒரு கட்டமைப்பாளர், அங்கு கட்டமைப்பாளருக்கு எந்த வாதமும் கொடுக்கப்படவில்லை. இயல்புநிலை கட்டமைப்பாளருக்கு அளவுரு இல்லை, ஆனால் இயல்புநிலை கட்டமைப்பாளருக்கான மதிப்புகள் இயல்புநிலையாக (மாறும்) அனுப்பப்படலாம்.
  • அளவுரு நிர்மாணிப்பவர்: இந்த வகை கட்டமைப்பாளர் வாதங்களை எடுத்துக்கொள்கிறார்; தரவு உறுப்பினர்களுக்கு வெவ்வேறு மதிப்புகளை வாதங்களாக அனுப்பலாம்.
  • கட்டமைப்பாளரை நகலெடுக்கவும்: நகல் கட்டமைப்பாளர் மற்ற வகை கட்டமைப்பாளர்களிடமிருந்து வேறுபட்டது, ஏனெனில் அது மற்ற பொருளின் முகவரியை ஒரு வாதமாக ஏற்றுக்கொள்கிறது.

கட்டமைப்பாளரின் நடைமுறைப்படுத்தல்:

வகுப்பு கான்ஸ்ட் {int a, b; பொது: கான்ஸ்ட் () // அளவுரு இல்லாத கட்டமைப்பாளர் {a = 0; ஆ = 0; } கான்ஸ்ட் (int c, int d) a // அளவுருவுடன் கட்டமைப்பாளர் a = c; இ = D; }}; int main () {Const C1; C2 என்ற (10,20); // இந்த அறிக்கை கட்டமைப்பாளரை அழைக்கிறது}

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

அழிப்பவரின் வரையறை:

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

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

அழிப்பான் செயல்படுத்தல்:

வகுப்பு கான்ஸ்ட் {int a, b; பொது: அளவுருவுடன் கான்ஸ்ட் (int c, int d) // கட்டமைப்பாளர். {a = c; இ = D; cout << "a மற்றும் b இன் மதிப்பு" <<>

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

அழிப்பவரின் தேவை

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

  1. ஒரு கட்டமைப்பாளரின் முதன்மை நோக்கம், அவை உருவாக்கப்படும்போது நினைவகத்தை ஒதுக்க வேண்டும். மாறாக, ஒரு அழிப்பாளரின் முக்கிய நோக்கம், அது அழிக்கப்படும் போது அதன் நினைவகத்தை ஒதுக்குவது.
  2. வகுப்பின் தரவு உறுப்பினர்களைத் தொடங்க வாதங்கள் பயன்படுத்தப்படலாம் என்பதால் வாதங்களை ஏற்க ஒரு கட்டமைப்பாளர் அனுமதிக்கப்படுகிறார். மறுபுறம், ஒரு அழிப்பான் எந்தவொரு வாதத்தையும் ஏற்றுக்கொள்வதில்லை, ஏனெனில் அதன் ஒரே வேலை பொருளின் நினைவகத்தை ஒதுக்குவதுதான்.
  3. ஒரு பொருள் உருவாக்கப்படும்போது ஒரு கட்டமைப்பாளர் என்று அழைக்கப்படுகிறார். இதற்கு மாறாக, ஒரு நிரல் நிறுத்தப்படும்போது அல்லது நிரல் ஒரு பொருள் உருவாக்கப்பட்ட தொகுதியிலிருந்து வெளியேறும் போது ஒரு அழிப்பான் என்று அழைக்கப்படுகிறது.
  4. வகுப்பின் தரவு உறுப்பினர்களைத் தொடங்க ஒரு கட்டமைப்பாளர் பொதுவாகப் பயன்படுத்தப்படுகிறார், அதேசமயம் அது அழிக்கப்படுவதற்கு முன்பு பொருள் சில செயல்களைச் செய்ய ஒரு அழிப்பான் பயன்படுத்தப்படுகிறது.
  5. கட்டமைப்பாளர்கள் அடுத்தடுத்த வரிசையில் செயல்படுத்தப்படுகிறார்கள், அதாவது அடிப்படை வகுப்பை மரபுரிமையாகக் கொண்ட ஒரு பெறப்பட்ட வர்க்கம் இருந்தால் மற்றும் பெறப்பட்ட வகுப்பின் பொருள் உருவாக்கப்பட்டது என்றால், அது முதலில் அடிப்படை வகுப்பின் கட்டமைப்பாளரையும் பின்னர் பெறப்பட்ட வகுப்பின் கட்டமைப்பாளரையும் அழைக்கும். மாறாக, பெறப்பட்ட வகுப்பின் அழிப்பான் முதலில் அழைக்கப்படுகிறது, பின்னர் அடிப்படை வகுப்பு என்பது ஒரு கட்டமைப்பாளரின் தலைகீழ் வரிசையில் ஒரு அழிப்பான் செயல்படுத்தப்படுகிறது என்பதாகும்.
  6. வகுப்பில், பல கட்டமைப்பாளர்கள் இருக்கக்கூடும், அவை அனுப்பப்பட்ட எண் வாதங்களால் அடையாளம் காணப்படுகின்றன, அதேசமயம் ஒரே ஒரு அழிப்பான் மட்டுமே இருக்க முடியும்.
  7. நகல் கட்டமைப்பாளரின் ஒரு கருத்து உள்ளது, இது ஒரு பொருளை மற்றொரு பொருளிலிருந்து துவக்க அனுமதிக்கிறது, அதே நேரத்தில் அழிப்பவருக்கு அத்தகைய கருத்து இல்லை.
  8. ஒரே கட்டமைப்பாளரின் பெயரில் வெவ்வேறு செயல்களைச் செய்ய கட்டமைப்பாளர்களுக்கு அதிக சுமை இருக்க முடியும். மாறாக, அழிப்பவர்களை அதிக சுமை செய்ய முடியாது.

முடிவுரை:

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