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;   // Տպում է "Ցուցիչ"
}