தொகுதி பாடங்கள் (1/2)
செயல்பாட்டு வார்ப்புருக்கள்
வார்ப்புருக்கள் C++ இல் பொதுவான குறியீட்டை எழுத அனுமதிக்கின்றன. வார்ப்புருக்கள் மூலம், பொதுவான வகை அளவுருக்களில் செயல்படும் செயல்பாடுகள் அல்லது வகுப்புகளை நாம் வரையறுக்கலாம், கோரப்பட்ட குறிப்பிட்ட வகைகளுக்கான உண்மையான குறியீட்டை உருவாக்க கம்பைலரை அனுமதிக்கிறது.
ஒரு செயல்பாட்டு வார்ப்புருவை வரையறுத்தல்
ஒரு செயல்பாட்டு டெம்ப்ளேட்டை வரையறுக்க, நாங்கள் template திறவுச்சொல்லைக் கொண்டு செயல்பாட்டு வரையறையை முன்வைப்போம், அதைத் தொடர்ந்து <> கோண அடைப்புக்குறிக்குள் இணைக்கப்பட்ட வகை அளவுருக்களின் பட்டியல். பொதுவாக, பொதுவான வகையை அறிவிக்க typename அல்லது class பயன்படுத்தப்படுகிறது.
// T is the generic type parameter
template <typename T>
T add(T a, T b) {
return a + b;
}செயல்பாடு அழைப்பு மற்றும் டெம்ப்ளேட் வாதம் கழித்தல்
செயல்பாட்டை அழைக்கும் போது, கோண அடைப்புக்குறிக்குள் வகையை வெளிப்படையாகக் குறிப்பிடலாம்:
int res1 = add<int>(5, 10);
double res2 = add<double>(3.14, 2.71);இருப்பினும், C++ கம்பைலர் வழக்கமாக வகை அனுப்பப்பட்ட உள்ளீட்டு அளவுருக்களிலிருந்து தானாகவே கழிக்க முடியும் (டெம்ப்ளேட் ஆர்குமென்ட் டிடக்ஷன்):
int res1 = add(5, 10); // The compiler deduces that T is intநீங்களே முயற்சி செய்து பாருங்கள்
பொதுவான வகை T இன் இரண்டு அளவுருக்களை எடுத்து இரண்டில் பெரியதை வழங்கும் myMax என்ற செயல்பாட்டு டெம்ப்ளேட்டை வரையறுக்கவும்.
குறிப்பைக் காட்டு
`டெம்ப்ளேட் <typename T>` என்பதைத் தொடர்ந்து `T myMax(T a, T b)` என்ற கையொப்பத்தை எழுதுவதன் மூலம் தொடங்கவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
வெவ்வேறு பொதுவான வகைகளான T1 மற்றும் T2 ஆகிய இரண்டு அளவுருக்களை எடுத்து, std::cout ஐப் பயன்படுத்தி இடைவெளியால் பிரிக்கப்பட்ட இரண்டு வாதங்களை அச்சிடும் printPair என்ற செயல்பாட்டு டெம்ப்ளேட்டை எழுதவும்.
குறிப்பைக் காட்டு
டெம்ப்ளேட் அறிவிப்பு இரண்டு அளவுருக்களைக் குறிப்பிட வேண்டும்: `டெம்ப்ளேட் <typename T1, typename T2>`.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்