C++学习三 模板类出错总结(Missing template arguments before 'L')
2024-10-02 23:06:51
一、模板类的说明
模板类有一个好处是可以放宽你输入的数据类型。
比如有这样的一个函数:
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
截图如下:
讲的很透彻^-^
最新文章
- erlang学习笔记(shell命令)
- Mac 下 WebStorm 配置go语言开发环境
- [译]PostCSS介绍
- 基本STRUTS标签-学习笔记-Bean标签
- light oj 1297 Largest Box
- C语言malloc和free实现原理
- javascript事件:获取事件对象getEvent函数
- solr的安装与配置
- ios移动端原生滚动条滚动不灵敏问题
- C# 图解教程 第四章 类的基本概念
- Linux篇---Grep和正则匹配
- mysql的基础用法,水一下
- mysql问题汇总——持续更新
- JSON知识点
- Java对象池技术的原理及其实现
- 关于微博开放平台Oauth2.0接入网站应用
- 【数据库】Eclipse连接MySQL数据库
- css3实现border渐变色
- hdu 4462 第37届ACM/ICPC 杭州赛区 J题
- PHP 手机号中间4位加密