C++类模板和模板类

1、c++的Template中的很多地方typename与class这两个关键字

 template<typename T>在模板定义语法中关键字class与typename的作用完全一样

 

2、类模板和模板类的概念

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

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

类模板定义:

定义一个类模板,一般有两方面的内容

A、首先要定义一个类,格式为

 template <class T>

 class Test

{

 …..

}

 test 为类名,在类定义体中,如果采用通用的数据类型的成员,函数参数的前面需要加上T,其中通用类型T可以作为普通成员变量的类型。还可以作为成员函数的参数和返回值类型。

例如

 

template<class T>

class Test

{

private:

     T n;

     const T i;

public:

 Test():i(0){};

 Test(T k);

 ~Test(){}

 

 void print();:

 T operator+(T x);

 

};

如果在类外定义成员函数,若此函数中有模板参数存在,则除了需要和一般类的类外定义成员函数一样的定义外, 还需要再函数外进行模板声明

 

 

template<class T>

Test<T>::Test(T k):i(k){n = k;}

template<class T>

T Test<T>::operator+(T x){

        return n + x;

}

 

template<class T>

Test<T>::Test(T k):i(k){n = k;}

template<class T>

T Test<T>::operator+(T x){

        return n + x;

}

关于类模板的使用:类模板的使用实际上是将类模板实例化成具体的类,它的格式为:类名<实际的类型>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值