c++泛型编程(一)模板

什么是模板
1、模板是c++的一种特性,允许类或者函数可以泛型形式运行
2、模板可以使类或者函数在不同类型下运行,无需为每一种类型都编写代码
3、模板是一种复用的手段
什么是函数模板
函数模板是建立一个通用的函数,他的形参、返回类型和局部变量都用一个占位符来表示,等到真正调用时,根据传入的参数逆推出真正的类型。
什么是类模板
c++不仅支持函数模板,也支持类模板。函数模板不仅可以用在函数声明中,也可以用在函数定义中;类模板不仅可以用在类的声明,也可以用在类的实现中(成员数据和成员函数),目的也是将数据类型参数化。

class a //类模板只能显示实例化,没法逆推
fun(1,2);
fun(1,2)//函数模板既可以显示实例化,也可以逆推

实例

#include<iostream>
using namespace std;
template<class T>
class A 
{
public:
	T data;
	void fun(T B, T C)
	{
		cout << B << "   " << C << endl;
	}
};

int main()
{
	A<double>a;
	a.fun(6, 6.3);
	getchar();
	getchar();
}

注意:在函数模板中占位符T只能表示一种类型;

template<class T>
void fun(T A,T b)
fun(5,5.3)//T即表示int型,也表示double型,编译时会出现错误

但类模板中却是正确的;

A<int> a;
a.fun(5,5.3)//正确,但会出现警告,可以将类类型改为double,因为int-double属于自动类型转换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值