首页 > 代码库 > C++ template
C++ template
在模板定义语法中关键字class与typename的作用完全一样。
什么是类模板
如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板
类模板定义
Step1: 声明模板
三种声明形式:
1。基本模板类
template<class T1,class T2>
2。带默认类型形参
template<typename T3, typename T4=int>
3。带非类型模板参数
template<class T5,int a>
Step2: 定义类
template<class T>class Test{private: T n; const T i; static T cnt;public: Test():i(0){} Test(T k); ~Test(){} void print(); T operator+(T x);};
Step3: 在类定义体外定义成员函数时,若此成员函数中有模板参数存在,则还需在函数体外进行模板声明,并在函数名前的类名后缀加上“<T>”
template<class T>Test<T>::Test(T k):i(k){n=k;cnt++;}template<class T>T Test<T>::operator+(T x){ return n + x; }
Step4: 在类定义体外初始化const成员和static成员变量,需再对模板进行声明
template<class T>int Test<T>::cnt=0;
什么是模板类
模板类是类模板实例化后的一个产物。
什么是函数模板
template<typename(或class) T>T fuc(T x, T y){ T x; //……}
什么是模板函数
模板函数的生成就是将函数模板的类型形参实例化的过程
C++ template
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。