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;   // Мебарояд "Ишора"
}