一、模板类的说明

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

  比如有这样的一个函数:

 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

  截图如下:

讲的很透彻^-^

C++学习三 模板类出错总结(Missing template arguments before 'L')的更多相关文章

  1. C++学习34 模板类

    C++除了支持模板函数,还支持模板类.模板类的目的同样是将数据类型参数化. 声明模板类的语法为: template<typename 数据类型参数 , typename 数据类型参数 , …&g ...

  2. 学习C++ 模板类

    #include<iostream>#include<typeinfo>#include<cstring> using namespace std; class A ...

  3. C++学习笔记36:类模板

    类模板的目的 设计通用的类型式,以适应广泛的成员数据型式 类模板的定义格式 template<模板形式参数列表>class 类名称{...}; 原型:template<typenam ...

  4. [百度空间] [原]DLL导出实例化的模板类

    因为模板是在编译的时候根据模板参数实例化的,实例化之后就像一个普通的类(函数),这样才有对应的二进制代码;否则,没有模板参数,那么编译器就不知道怎么生成代码,所以生成的DLL就没有办法导出模板了.但是 ...

  5. 如何用boost::serialization去序列化派生模板类(续)

    在 如何用boost::serialization去序列化派生模板类这篇文章中,介绍了序列化派生类模板类, 在写測试用例时一直出现编译错误,调了非常久也没跳出来,今天偶然试了一下...竟然调了出来. ...

  6. set, unordered_set模板类

    template< class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key> ...

  7. 读书笔记_Effective_C++_条款四十三:学习处理模板化基类的名称

    背景是这样的,有两个不同的公司,然后想设计一个MessageSender,为这两个公司发送不同的消息,既支持明文发送SendClearText,也支持密文发送SendEncryptedText.一种思 ...

  8. C++学习笔记(3)----类模板的static成员

    与任何其他类相同,类模板可以声明 static 成员: template <typename T> class Foo { public: static std::size_t count ...

  9. C++模板类内友元(友元函数,友元类)声明的三种情况

    根据<C++ Primer>第三版16.4节的叙述,C++类模板友元分为以下几种情况 1.非模板友元类或友元函数. 书上给了一个例子: class Foo{     void bar(); ...

随机推荐

  1. 自己用到的解决Python3.6.5+Django2.0集成xadmin后台点击添加或者内容详情报 list index out of range 的错误的办法如下:

    Python3.6.5 Django2.0 这是Django版本与xadmin兼容的问题 解决办法如下: 注释掉如下代码: def render(self, name, value, attrs=No ...

  2. 获取当前Linux的外网地址

    有时候我们在测试配置外网IP是不是成功时,我们需要使用一些命令,使用 ssh 登录可以查看ip, 还有一种可以使用命令: curl ifconfig.me 进行方便获取,公网IP:真的是非常好的服务: ...

  3. STL 中 map 的使用

    涉及:vector,pair 基本结构 map 从本质上来说是一颗二叉排序树,树上的节点类型为pair.pair类型中有两个重要的成员变量,其中 first 存储了 key ,second 存储了 v ...

  4. 《数据挖掘导论》实验课——实验二、数据处理之Matplotlib

    实验二.数据处理之Matplotlib 一.实验目的 1. 了解matplotlib库的基本功能 2. 掌握matplotlib库的使用方法 二.实验工具: 1. Anaconda 2. Numpy, ...

  5. 几款常见web扫描器的简要记录

    一.前期侦查 为了减少和目标系统的交互(防止触发报警),建议将目标站点镜像一份到本地 httrack(镜像网站到本地)  ====> 根据引导填入相关信息即可,使用非常简单 二.扫描 扫描分两种 ...

  6. MYSQL 命令导出事件、存储过程、触发器

    普通导出某个数据库 mysqldump -u username -p passowrd databasename > file.sql 顺便导出事件 使用 –events 参数 mysqldum ...

  7. 改编《OI抄》

    最近经历的事情比较多,网上常常流传着<锦鲤抄>修改版,于是就再修改了修改,就能唱起来了. 算是一种情怀吧. 请欣赏: OI抄 作词:某些dar佬 FYHSSGSS ssdfzhyf 作曲: ...

  8. 推荐一款好用到爆的开源 Java 诊断工具

    Arthas是什么鬼?Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题. Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux.M ...

  9. python写文件时,使用代码强制刷新文件

    一.实验环境 1.Windows10x64 2.anaconda4.6.9 + python3.7.1(anaconda集成,不需单独安装) 3.pyinstaller3.5 二.任务需求 三.问题描 ...

  10. tomcat运行一段时间后报错"Too many open files"

    tomcat运行一段时间后报打开太多文件错误:Too many open files  查看当前进程的文件打开数: lsof -n |awk '{print $2}'|sort|uniq -c |so ...