/**/
/***********************************************
* 类模板显式特化(explicit specialization)
*
* 为了进行特化,首先需要一个通用的版本,称主模板.
* 主模板使用了标准库堆算法. 堆 是一种线性化的树形
* 结构, 将一个值压入一个堆中, 实际上等于将该值插入到一
* 个树形结构中;将一个值从堆中取出就等于移除并返回堆中
* 最大值.
* 但在处理字符的指针时会碰钉子.堆将按照指针的值进
* 行组织. 我们可以提供一个显式特化版本解决此问题(例1)
* 如果希望除了一个针对const char*的Heap外,还希望提
* 供一个针对char *的Heap;(例2)
***********************************************/
//
主模板
template
<
typename T
>
class
Heap
...
{
private:
std::vector<T> h_;
public:
void pus

本文详细介绍了C++中的类模板显式特化,包括如何为特定类型创建特化版本,以及特化版本如何与主模板配合。通过示例展示了如何为`const char *`和`char *`创建特化版本,并且讨论了特化版本可以拥有不同于主模板的接口,但建议保持基本功能的一致性。
最低0.47元/天 解锁文章
1089

被折叠的 条评论
为什么被折叠?



