| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 一篇文章读懂类模板 -> 正文阅读 |
|
[C++知识库]一篇文章读懂类模板 |
文章摘自:c++从入门到精通(第四版 清华大学出版社) 使用template关键字不仅可以定义函数模版,也可以定义类模板。类模板代表一族类,是用来描述通用数据类型或处理方法的机制。它使类中的成员函数和数据成员可以取任意的数据类型。类模板可以说是说是用类生成类,减少了类的定义数量。 目录 1.类模板的定义与声明:类模板的一般定义形式如下:
类模板成员函数形式定义如下:
template是关键字,类型形式参数表与模版定义相同。类模板的成员函数定义时的类模板名要与类模板定义时一致。类模版不是一个真实的类,需要重新生成类,生成类形式如下:
用新生成的类定义对象的形式如下:
其中类型实在参数表应与该类模板中类型形式参数表匹配。用类模板生成的类称为模板类。类模板和模板类不是同一个概念,类模板是模板的定义,不是真实的类,定义要用到类型参数,模板类本质上和普通类相同,它是类模板的类型参数实例化后得到的类。 定义一个容器的类模板,程序代码如下:
和普通类一样,需要对类模板成员函数进行定义,程序代码如下:
将模板类的参数设置成整型,然后用类模板声明对象,程序代码如下:
声明对象后,就可以调用类成员函数,程序代码如下:
在类模板定义中,类型形式参数表中的参数也可以是其他类模板,例如:
类模板也可以进行继承,例如:
T是一个类,CDerived继承自该类,CDerived可以对类T进行拓展。 2.简单类模板类模板中的类型形参数列表可以在执行时指定,也可以在定义类模板中指定。下面看类型参数如何在执行时指定。
运行结果如下: 程序中的MyTemplate是一个模板类,它使用整型类型和双精度作为参数。 3.默认模板参数默认模板参数就是在类模板定义时设置类型形式参数表中一个类型参数的默认值,该默认值是一个数据类型,有默认的数据类型参数后,在定义模板新类时就可以不进行指定。 4. 为具体类型的参数提供默认值默认模版参数是类模板中由默认的数据类型作为参数,在模版定义时还可以为默认的数据类型声明变量,并且为变量赋值。 实例:为具体的参数提供默认值。
运行结果如下: 5.有界数组模版C++语言不能检查数组下标是否越界,如果下标会造成程序崩溃,程序员在编辑代码时很难找到下标越界错误,那么如何能让数组进行下标越界检测呢?答案是建立数组模版,在模版定义时对数组下标进行检查。 在模版中想要获取下标值,需要重载数组下标运算符“[ ]”,重载数组下标运算符后使用模板类实例化数组,就可以进行下标越界检测了。例如:
程序中使用了assert来警告处理,当有下标越界情况发生时就弹出对话框警告,然后输出出现错误的代码位置。assert函数需要使用cassert头文件。 数组模版的应用示例如下:
? 程序能够及时发现dataArray已经越界,因为定义数组时指定数组长度为3,当数组下标为3时说明数组有4个元素,所以执行到dataArray[3]时,弹出错误警告。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:12:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |