一、模板类的说明

  模板类有一个好处是可以放宽你输入的数据类型。

  比如有这样的一个函数:

 int add(int x, int y)
{
return x+y;
}

  这个函数对于int类型的x,y才适合,但是如果我们希望计算float类型的呢?

  这必须重新定义一个函数(函数重载也可以实现)

 float add(float x, float y)
{
return x+y;
}

  但是这样显然太麻烦,所以模板类可以解决这个问题

二、一个例子

  书上的一个例子用作说明

  

#include <iostream>
using namespace std;
template <typename Type> //这一步说明了你要定义一个模板类,数据类型名字是Type(比如可能是int, float,等等)
class Calc
{
public:
Calc ();
Type multiply (Type x, Type y);//类型都是Type
Type add (Type x, Type y);//这里是函数的声明
}; template <typename Type> Calc<Type>::Calc ()
{ } template <typename Type> Type Calc<Type>::multiply (Type x, Type y)
{
return x * y;
} template <typename Type> Type Calc<Type>::add (Type x, Type y)//这里是函数定义
{
return x+y;
}
int main(void)
{
Calc<int> person;
int m=;
int n=;
int sum=person.add(m,n);
cout<<"the result is "<<sum<<endl;
return ;
}

三、运行错误

  最开始初始化的时候,我是这样写的:

 Calc  person;

  但是失败了,结果如下:

  后来查了一下,发现需要在初始化的时候传入一个数据类型,告诉程序你要存储什么数据。

  有人给了一个解答:

  https://stackoverflow.com/questions/33413084/missing-template-arguments-before-l

  截图如下:

讲的很透彻^-^

最新文章

  1. erlang学习笔记(shell命令)
  2. Mac 下 WebStorm 配置go语言开发环境
  3. [译]PostCSS介绍
  4. 基本STRUTS标签-学习笔记-Bean标签
  5. light oj 1297 Largest Box
  6. C语言malloc和free实现原理
  7. javascript事件:获取事件对象getEvent函数
  8. solr的安装与配置
  9. ios移动端原生滚动条滚动不灵敏问题
  10. C# 图解教程 第四章 类的基本概念
  11. Linux篇---Grep和正则匹配
  12. mysql的基础用法,水一下
  13. mysql问题汇总——持续更新
  14. JSON知识点
  15. Java对象池技术的原理及其实现
  16. 关于微博开放平台Oauth2.0接入网站应用
  17. 【数据库】Eclipse连接MySQL数据库
  18. css3实现border渐变色
  19. hdu 4462 第37届ACM/ICPC 杭州赛区 J题
  20. PHP 手机号中间4位加密

热门文章

  1. 程序运行时间测试 - 使用libc 中 time 函数 实现秒级的运行时间检测
  2. 网络管理和nmcli命令的使用——网络接口配置-bonding实验步骤
  3. Day3 - Python基础3 函数基本、递归函数、内置函数
  4. MQ的深入理解
  5. MySQL 中的索引
  6. C#面对对象之封装、继承、多态的简单理解
  7. UserControl关闭
  8. go-客户信息关系系统
  9. Web前端基础(6):CSS(三)
  10. Spring Boot 中如何配置 Profile