C++中的模板(类模板、模板类、模板函数)

1、class 和 typename 

(1)class :一般class用于定义类,在模板引入c++后,最初定义模板的方法为:template<class T>,这里class关键字表明T是一个类型;

(2)typename :为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,定义模板的方法为:template<typename T>。

(3)在模板定义语法中关键字class与typename的作用完全一样。

2、类模板(它是一个模板)

        一个类模板(类生成类)允许用户为类定义个一种模式,使得类中的某些数据成员、默认成员函数的参数,某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。

  相反,如果一个类中的数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表一类类。

2.1 类模板的声明

template<class T> 
class Test
{
public:
    Test():i(0) {}
     Test(T k);//参数
     ~Test(){}
 
     void print();
     T operator+(T x);//返回值,可将operator+理解为一个函数名
private:
   T n;//成员函数
   const T i;
};

2.2 类模板的定义

如果在类外定义成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值