博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模板参数
阅读量:6343 次
发布时间:2019-06-22

本文共 1180 字,大约阅读时间需要 3 分钟。

hot3.png

                  模板参数可以是某些类型或者非类型。类型参数需用使用typename或class关键字才指定。

                  如下:

                  template<typename T1,typename T2,...> class className{...}

                  template<class T1,  class T2,...> class className{...}

                  非类型的参数就是通常的参数定义,表示模板在实例化时是用的常量。

                 还是以数组模板类为例子:

                

#include 
using namespace std;template
class Array{public: Array(); ~Array(); int length() const { return m_length; } T& get(int index) const; T operator[](int index);private: T *p_array; int m_length;};template
Array
::Array(): p_array(new T[len]), m_length(len){}template
Array
::~Array(){ delete p_array;}template
T& Array
::get(int index) const{ if (index > m_length -1) { throw "ERROR:index is out!"; } else { return p_array[index]; }}template
T Array
::operator[](int index){ return p_array[index];}int main(){ Array<> intArr; cout << "the length of int array is " << intArr.length() << '\n'; try { intArr.get(11); }catch(const char *ex) { cout << ex << '\n'; } Array
charArr; Array
char20Arr; cout << "the length of char20 array is " << char20Arr.length() << '\n'; return 0;}

转载于:https://my.oschina.net/u/854744/blog/418473

你可能感兴趣的文章
剑指offer---19--***-顺时针打印矩阵
查看>>
关于数组随机不重复的思路
查看>>
oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)
查看>>
Windows 安装 Jenkins 2.6
查看>>
计算一个点是否在一个区域中
查看>>
正则表达式
查看>>
淘宝面试题:有一个一亿节点的树,现在已知两个点,找这两个点的共同的祖先。...
查看>>
EntityFramework 6.x多个上下文迁移实现分布式事务
查看>>
高版本SQL备份在低版本SQL还原问题
查看>>
一键安装最新内核并开启 BBR 脚本
查看>>
C# 绘制图表(柱状图,线性图,饼状图)
查看>>
.NET中使用Redis
查看>>
PHP 页面跳转的三种方式
查看>>
Juniper总结
查看>>
面试题目3:智能指针
查看>>
取消凭证分解 (取消公司下的多个利润中心)
查看>>
flask ORM: Flask-SQLAlchemy【单表】增删改查
查看>>
vim 常用指令
查看>>
nodejs 获取自己的ip
查看>>
Nest.js 处理错误
查看>>