Junior — Middle
C++та шаблондордун жарым-жартылай атайындоо мисалын келтире аласызбы?
sobes.tech AI
AIден жооп
C++ тилде бөлүктүү шаблонгоо өзгөчөлөнүшү белгилүү бир параметрлердин түрлөрү үчүн шаблон классты же функцияны аныктоого мүмкүндүк берет, калган параметрлер жалпы бойдон калат. Бул кайсы бир түрлөр үчүн шаблондун жүрүм-турумун өзгөртүүнү каалаганда, бардык варианттарды толугу менен кайра жазбай колдонууга ыңгайлуу.
Көрсөткүчтөр үчүн класс шаблонунын бөлүктүү өзгөчөлөнүшү мисалы:
// Жалпы шаблон
template<typename T>
struct TypeInfo {
static const char* name() { return "Белгисиз"; }
};
// Өзгөчөлөнүш бөлүгү көрсөткүчтөр үчүн
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Көрсөткүч"; }
};
// Колдонуу
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // "Белгисиз" чыгат
std::cout << TypeInfo<int*>::name() << std::endl; // "Көрсөткүч" чыгат
}