C++类模板特化全总结

本文深入探讨C++类模板特化的概念,包括部分特化、全特化和偏特化,详细阐述如何有效地为不同类型的参数定制模板,同时提供实例解析和最佳实践,帮助开发者提升代码复用性和效率。
摘要由CSDN通过智能技术生成
//基础模板一
template<typename T1, typename T2>
class TestTemplateA {
public:
    void Func() {
        printf("TestTemplateA: base\n");
    }
};

//注意下面这个模板并不是【基础模板一】的偏特化,编译会报错,因为它属于【基础模板一】的一种情况
//特化或偏特化是指对类名后面的模板类型参数具体指定,而不是对template<>里的参数的具体指定
//template<bool, typename T>
//class TestTemplateA {
//public:
//    void Func() {
//        printf("TestTemplateB: base\n");
//    }
//};

//偏特化1
template<typename T2>
class TestTemplateA<int, T2> {
public:
    void Func() {
        printf("TestTemplateA: 偏特化1\n");
    }
};

//偏特化2
template<typename T1, typename T2>
class TestTemplateA<T1*, T2> {
public:
    void Func() {
        printf("TestTemplateA: 偏特化2\n");
    }
};

//偏特化3
template<typename T1, typename T2>
class TestTemplateA<T1*, T2*> {
public:
    void Func() {
        printf("TestTemplateA: 偏特化2\n");
    }
};

//偏特化4
template<typename T1, t
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值