当前位置:  编程技术>c/c++/嵌入式

C++模板之特化与偏特化详解

    来源: 互联网  发布时间:2014-10-29

    本文导语:  前言 说到C++模板,这个已经不是什么新东西了,自己在实际开发中也用过;对于C++模板特化和偏特化,对于别人来说,已经不是什么新东西了,但是对于我来说,的确是我的盲区,那天在群里讨论这个问题,自己对于这部分确...

前言

说到C++模板,这个已经不是什么新东西了,自己在实际开发中也用过;对于C++模板特化和偏特化,对于别人来说,已经不是什么新东西了,但是对于我来说,的确是我的盲区,那天在群里讨论这个问题,自己对于这部分确实没有掌握,又联想到在《STL源码剖析》一书中,对于此也是有着介绍。所以,今天就对此进行详细的总结,以备后忘。

C++模板

说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板。我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样显然不利于程序的扩充和维护。C++模板就应运而生。C++的模板提供了对逻辑结构相同的数据对象通用行为的定义。这些模板运算对象的类型不是实际的数据类型,而是一种参数化的类型。C++中的模板分为类模板和函数模板。

类模板如下:

代码如下:

#include
using namespace std;
 
template
class TClass
{
public:
     // TClass的成员函数
 
private:
     T DateMember;
};

函数模板如下:

代码如下:

template
T Max(const T a, const T b)
{
     return  a > b ? a : b;
}

模板特化

有时为了需要,针对特定的类型,需要对模板进行特化,也就是所谓的特殊处理。比如有以下的一段代码:

代码如下:

#include
using namespace std;
 
template
class TClass
{
public:
     bool Equal(const T& arg, const T& arg1);
};
 
template
bool TClass::Equal(const T& arg, const T& arg1)
{
     return (arg == arg1);
}
 
int main()
{
     TClass obj;
     cout

    
 
 

您可能感兴趣的文章:

  • 关于模板类局部特化的错误:模板参数太少。
  • c++模板(Template)介绍及模板参数中包含模版
  • C++模板库 C++ B-tree
  • c++模板(template)常见用法代码实例
  • C++元模板语言 Metacza
  • C++可变参数模板(variadic template)详细介绍及代码举例
  • C++反射模板库 Template Reflection Library
  • C++ STL标准模板库类String成员详细列表参考及示例代码
  • 常用 C++ 数学模板定义 libefgy
  • c++通用模板类(template class)定义实现详细介绍
  • C++模板库 libsigc++
  • c++模板(template)中的class和typename关键字异同比较
  • 哪里有C++标准库(包含模板库)的文档可以下载?
  • C++模板库 Standard Portable Library
  • uClinux下如何才能支持标准C++类库,如(string, list)等模板库
  • 线性算术的C++模板库 Eigen
  • C++模板特例化应用实例
  • C++类模板与模板类深入详解
  • C++函数模板与类模板实例解析
  • C++中函数模板的用法详细解析
  • C++可变参数的函数与模板实例分析
  • C++设计模式之模板方法模式
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ThinkPHP模板判断输出Empty标签用法详解
  • ThinkPHP模板判断输出Present标签用法详解
  • ThinkPHP模板判断输出Defined标签用法详解
  • ThinkPHP模板范围判断输出In标签与Range标签用法详解
  • 在PHP模板引擎smarty生成随机数的方法和math函数详解
  • ThinkPHP模板IF标签用法详解
  • asp.net使用npoi读取excel模板并导出下载详解
  • ThinkPHP模板引擎之导入资源文件方法详解
  • ThinkPHP模板比较标签用法详解
  • ThinkPHP模板引擎导入资源文件教程详解
  • php之Smarty模板使用方法示例详解
  • PHP模板引擎 费尔模板引擎
  • Destoon模板怎么制作?destoon模板制作简单教程
  • Java模板引擎 Snippetory
  • 网页模板引擎 Jenner
  • 多脚本语言模板引擎 Tenjin
  • 模板引擎 JET
  • destoon公司主页模板风格的添加方法
  • 费尔PHP模板引擎
  • JavaScript模板引擎 ECT
  • 模板配置系统 CoreTML
  • PHP模板语言 Twig
  • 模板引擎 ETPL
  • JS模板引擎 BaiduTemplate
  • JavaScript模板引擎 EasyTemplate
  • JS模板引擎 Trimpath
  • JavaScript 模板引擎 Elapse
  • JavaScript 模板引擎 templayed.js
  • PHPnow模板引擎
  • 教你添加destoon公司主页模板风格方法
  • JavaScript 模板引擎 Velocity.js




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3