Sobes.tech
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;   // "Көрсөткүч" чыгат
}