Sobes.tech
Junior — Middle

Kas saaksite anda näite C++-is osade spetsialiseerumise kasutamisest?

sobes.tech AI

Vastus AI-lt

C++ keeles võimaldab osaline mallide spetsialiseerumine määratleda klassi või funktsiooni mallid teatud parameetritüüpidele, jättes ülejäänud parameetrid üldiseks. See on kasulik, kui soovite muuta mallide käitumist teatud tüüpide jaoks, mitte kirjutada kõiki variante täielikult uuesti.

Näide osalisest spetsialiseerumisest näitajaid kasutava klassi mallile:

// Üldine mall
template<typename T>
struct TypeInfo {
    static const char* name() { return "Tundmatu"; }
};

// Osaline spetsialiseerumine näitajatele
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Näitaja"; }
};

// Kasutamine
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // Väljundab "Tundmatu"
    std::cout << TypeInfo<int*>::name() << std::endl;   // Väljundab "Näitaja"
}