C++模板

C++模板

在学习c++模板的时候,我们涉及到过向量的模板vector<int> vec,这其实是已经定义好的类模板,我们拿来直接用,进行类模板的实例化,得到了vec的对象。但是为了增加语言的灵活性,c++支持用户自定义模板,实现封装。

模板是一种对类型进行参数化的工具。

通常有两种形式:函数模板类模板

使用模板的目的就是能够让程序员编写与数据类型无关的代码。

1. 函数模板格式

template<typename T> 函数返回值类型 函数名称 (函数参数列表)
{
函数体;
};
注意:T只是类型形参,在模板函数被调用的时候会把实际的数据类型传递给模板中的形参。
举个例子:

template<typename T> T func(T a,T b)
{   
    T temp;
    if(a>b)
    {
        temp = a;
        cout << temp << endl;
    }
}
调用函数func()的时候,func(2,3),这个时候会把int类型的实参传递给模板中的形参。从而实现函数的封装,实现函数的定义和数据类型无关。
2. 类模板的一般格式

Template<typename T> class 类名{...};
其中T只是自己取得形参的名称,没有实际意义。
举个例子:

Template<class T> class A
{public:
     T a; 
     T b; 
     T func(T c, T &d); 
 };

那么现在问题来了,怎么调用,对于函数而言我们说函数的调用,但是对于类而言我们一般说实例化,那么怎么实例化呢,同样可以参考vector<>模板的用法,即是在实例化的时候进行实际的类型参数的传递。例如vector<int> veec其中int是传递过去的实际类型参数。

其他的问题参考一下别人的博客。如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值