欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于C++泛型编程职工管理系统

程序员文章站 2024-03-27 10:27:46
前言:前面介绍到了c++的泛型编程,并实现了万能容器,不过那使用的是数组,今天呢咱带大家实践一下使用泛型技术,结合单链表实现一个职工管理系统。保证大家看完之后有所感悟。一、泛型编程思想所谓泛型就是类型...

前言:

前面介绍到了c++的泛型编程,并实现了万能容器,不过那使用的是数组,今天呢咱带大家实践一下使用泛型技术,结合单链表实现一个职工管理系统。保证大家看完之后有所感悟。

一、泛型编程思想

所谓泛型就是类型不固定,只需修改少量代码就可以扩展为其他类型的应用,由于c++是一门静态编译型的语言,变量的类型都是事先编译好的,如果不用泛型进行编程,一段代码始终就是那么点作用。使用泛型编程后,可以很简单的对其他类型进行扩展。泛型编程核心思想就是将数据类型设置为模板,第一次编译是对模板进行编译,第二次编译会带入人为传的类型参数。前面文章有讲函数模板与类模板,忘记的小伙伴可以去看看。

二、单链表是什么?

单链表中的单代表一条,链表意思就是一个个节点链接起来的表结构。
其最典型的特征就是节点只有一个指针域。并且该指针域指向下一节点的地址

1.图示

基于C++泛型编程职工管理系统

  • 链表中的第一个节点被称为头结点,一般不存储数据,指向头结点的指针称为头指针
  • 第一个存储数据的节点称为首节点,末尾节点称为尾节点,指针域赋空,防止变为野指针。

2.链表的节点结构【节点类】

①常规链表节点

  • 包含数据域,指针域。指针域指针类型与节点类型保持一致。

②泛型链表节点

其中t代表的是一种不确定的数据类型,data是一个t类型的对象,其作用类似于结构体存储数据域的信息,但是在c++中他必须用类实现,因为该数据类型要有属于自己的属性与方法。node* next代表一个t类型的node指针,其本质还是node指针,只不过t的类型决定着node *指向的节点中的data的类型。 

代码如下:

3.链表类

常规链表类中需要包含一个头指针,指向链表的头结点,然后创建一个链表对其增删改查泛型编程中的链表类,也要是一个链表类。实现类型的参数化,具体如下:

三、泛型编程核心

1.实现数据类

泛型就是要将你写的类型,像对待int string类型那样对待。首先要进行的就是运算符重载重载了运算符你可以使用cin,cout直接对相应的对象进行输入,输出。可以直接使用=进行赋值。

具体实现如下:

2.实现链表类

泛型的链表类、节点类一般就是写死的,做到换一个数据类还可以用的效果所以在泛型链表类中的提示性语句要有一定的泛化程度,不可以针对某种类型提示。

四、运行截图

1.主菜单

基于C++泛型编程职工管理系统

2.查看信息

基于C++泛型编程职工管理系统

3.更换数据类型

  • 将officer类型注释掉,使用int类型

基于C++泛型编程职工管理系统

4.再次显示所有信息【抛转】

  • 可以看到就算将officer类型换为int类型,程序依旧可以稳定的运行。
  • 这里打印职工信息系统的提示性语句出现到了这里,如果大家真的理解了泛型的思想
  • 肯定可以轻而易举的改掉这处不足,有什么想法的小伙伴评论区留言博主吧。

基于C++泛型编程职工管理系统

五、源码

总结:
理解了泛型会对python等解释性语言有更好的理解。希望大家能够好好理解这个项目,在博主的基础之上更上一层楼

到此这篇关于基于c++泛型编程职工管理系统的文章就介绍到这了,更多相关c++泛型编程职工管理系统内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!