#include <iostream>
using namespace std;template<int x>
class sum
{public:enum { number = x + sum<x-1>::number };
};template<>
class sum<0>                      // 模板特化1
{public:enum { number = 0 };
};template<>
class sum<1>                      // 模板特化2
{public:enum { number = 1 };
};int fun(int n)                        // fun(n) = n + fun(n-1)
{if(n == 1)return 1;else if(n == 0)return 0;elsereturn n + fun(n-1);
}int main()
{int x = sum<50>::number;        // 相当于x = fun(50)cout << x << endl;int s =  fun(50);cout << s << endl;return 0;
}/*运行结果:12751275
*/

通过以上的运行情况可知:sum<50>::number相当于fun(50)的结果,但是两者是有本质区别的。

fun(50)是通过递归函数来实现的,在实际运行时才得到结果。

但是sun<50>::number是在编译时就确定了结果!

类模板特化之经典(一)相关推荐

  1. C++类模板特化全总结

    //基础模板一 template<typename T1, typename T2> class TestTemplateA { public:void Func() {printf(&q ...

  2. C++类模板的三种特化类型

    From: http://blog.sina.com.cn/s/blog_65d069c601010fb3.html 说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相 ...

  3. C++模板(函数模板,类模板)的基本使用与非类型模板参数与模板的特化

    C++模板 模板初阶 泛型编程 函数模板 函数模板概念 函数模板格式 函数模板的原理 函数模板的实例化 隐式实例化 显式实例化:在函数名后的<>中指定模板参数的实际类型 模板参数的匹配原则 ...

  4. C++之函数模板、类模板、模板的特化

    目录 1.什么是模板? 2.类模板的定义如下: 3.模板分类? 1.模板参数有两种: 2.模板的类型 1.函数模板 2.类模板 4.模板实例化 5.模板实现链栈 1.C语言版 2.C++版本 1.什么 ...

  5. C++中的类模板详细讲述

    一.类模板定义及实例化 1. 定义一个类模板: 1 template<class 模板参数表> 2 3 class 类名{ 4 5 // 类定义...... 6 7 }: 其中,templ ...

  6. 类模板(参考《C++ Templates 英文版第二版》)

    类模板(参考<C++ Templates 英文版第二版>) Chapter 1 类模板 与函数相似,类也可以被一个或者多个类型参数化 在这章,我们使用栈作为例子 2.1 类模板stack的 ...

  7. 【C++深度剖析教程38】类模板深度剖析

    加qq1126137994 微信:liu1126137994 一起学习更多技术!!! 1.多参数类模板 类模板可以定义任意多个不同的类型参数 类模板可以被特化: 指定类模板的特定实现 部分类型参数必须 ...

  8. C++模板之隐式实例化、显示实例化、隐式调用、显示调用和模板特化详解

    模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程.对于函数模板而言,模板实例化之后,会生成一个真正的函数.而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始 ...

  9. C++——模板特化和偏特化

    1.引言 C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现.目前,STL在C++社区中得到了广泛的关注.应用和研究.理 ...

最新文章

  1. C++中的new和malloc的区别
  2. Ubuntu 软件安装
  3. 只安装python_AI帮你写Python,安装只需5步,还能任你调教 | 开源
  4. 计算机网络的拓扑模型,基于复杂网络模型的计算机网络拓扑结构研究
  5. 使用可视化工具redisclient连接redis
  6. mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)
  7. Linux CentOS7/RHEL7关闭ctrl+alt+delete功能键
  8. 第 4-1 课:BIO、NIO、AIO 详解 + 面试题
  9. Python自动化课之Day3篇
  10. AD学习之旅(9)— 新建PCB封装库
  11. 中国姓氏英文翻译大全
  12. 初中计算机课件flash,初中数学flash课件(共100个)
  13. ImageOptim图片压缩工具免费版
  14. 四种常见的颜色模式及各自的特点?
  15. Unity -Demo 之 ✨ 语音识别-讯飞SDK使用过程
  16. 星际争霸2 AI开发(持续更新)
  17. win11电脑开移动热点,但是手机连不上
  18. Buffer(缓冲区)
  19. Android 6.0指纹识别App开发demo
  20. mac mini u盘安装系统_桔子系统U盘启动安装教程

热门文章

  1. Vxworks增加system call
  2. binary masks_Python中的Masks概念
  3. 先知模型 facebook_使用Facebook先知进行犯罪率预测
  4. 计算机应用基础成教作业,(计算机应用基础成教08A卷1.doc
  5. pytorch深度学习_在本完整课程中学习在PyTorch中应用深度学习
  6. 真实感人故事_您的数据可以告诉您真实故事吗?
  7. app之---豆果美食
  8. jQuery Ajax
  9. EasyDSS高性能流媒体服务器前端重构(五)- webpack + vue-router 开发单页面前端实现按需加载 - 副本...
  10. Android 应用内直接跳转酷市场