Junior — Middle
C++ da shablonlarning qisman ixtisoslashuvining misolini keltira olasizmi?
sobes.tech AI
AIdan javob
C++ da'vo shablonlarining qisman ixtisoslashuvi shablon sinfi yoki funktsiya uchun parametr turlarini belgilashga imkon beradi, qolgan parametrlar umumiy bo'lib qoladi. Bu, ba'zi turlar uchun shablonning xulqini o'zgartirish kerak bo'lsa, barcha variantlarni to'liq yozib chiqmasdan foydalidir.
Poydevor uchun ko'rsatkichlar uchun shablon sinfining qisman ixtisoslashuvi misoli:
// Umumiy shablon
template<typename T>
struct TypeInfo {
static const char* name() { return "Noma'lum"; }
};
// Ko'rsatkichlar uchun qisman ixtisoslashuv
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Ko'rsatkich"; }
};
// Foydalanish
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // "Noma'lum" chiqaradi
std::cout << TypeInfo<int*>::name() << std::endl; // "Ko'rsatkich" chiqaradi
}