C++的纯虚函数和抽象类示例:创建一个动态数组,可以实现增加、删除、查找、计算长度、打印等功能
2020-06-25 22:23
106 查看
- 实现的功能:
1、创建一个动态数组,可以实现增任意个元素并且打印出来
2、根据相应的索引,找到对应的元素,并打印出来
3、根据索引,删除对应的元素
4、在增加和删除后计算数组长度
#include <iostream> #include <cstdio> using namespace std; class List{ //抽象类 public: virtual void add(int dat)=0; virtual int get(int index)=0; virtual int size()=0; virtual void display()=0; virtual int remove (int index)=0; virtual ~ List(){} }; class arrayList : public List{ public: arrayList(){ len=0; ARRAY_SIZE=10; dp =new int[ARRAY_SIZE]; } void add(int dat){ if(len==ARRAY_SIZE){ addspace(); } *(dp+len)=dat; len++; } int get(int index){ if(index<0 || index>=len){ printf("index invalid!\n"); return 0; } return *(dp+index); } int size(){ return len; } void display(){ printf("\n=======================================\n"); printf("size:%d\n",len); int i=0; for(;i<len;i++){ printf("%5d",*(dp+i)); if((i+1)%10==0){ printf("\n"); } } printf("\n=======================================\n"); } int remove(int index){ if(index<0||index>=len){ printf("index out of bonds exception!\n"); return -1; } int i=index; for(;i+1<ARRAY_SIZE;i++){ dp[i]=dp[i+1]; } len--; return 0; } private: int len; int ARRAY_SIZE; int *dp; void addspace(){ int *tp=dp; ARRAY_SIZE *=2; dp=new int[ARRAY_SIZE]; int i=0; for(;i<len;i++){ *(dp+i)=*(tp+i); } delete []tp; } }; int main(){ arrayList list; int i=1; for(;i<=200;i++){ list.add(i); } list.display(); list.remove(199); list.display(); printf("\ninput index:\n"); int index; cin >> index; printf("the value is:%d\n",list.get(index)); return 0; }
相关文章推荐
- 创建一个学生系统,实现一下功能; * 1:增加学生 * 2:显示学生 * 3:修改学生 * 4:删除学生 * 5:查找学生 * 6:退出程序 * 请输入选择(
- C语言示例八(Linuc C链表实现):写一个通讯录,可以实现添加、删除、查找、列表展示、修改等功能
- 用ArrayBox封装一个新的动态数组工具类,长度可变,仍然能实现存数据,删除数据,获取指定位置的数据,得到ArrayBox的有效长度的功能
- 封装一个字符数组,实现增加,删除,替换,打印,搜索等功能
- 设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能
- System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。
- [C++学习笔记14]动态创建对象(定义静态方法实现在map查找具体类名对应的创建函数,并返回函数指针,map真是一个万能类)good
- 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有
- 简单工厂(Factory)-提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。
- 用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)
- (初级小项目):用Java实现一个简单的学生信息管理系统,可实现增加、删除、修改和查看学生信息的功能(此处用到面向对象和数组的知识点)
- JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
- 巧在C#中设置多维动态数组,可以动态增加及删除
- 一个神奇的实现:计算数组尾部对称长度
- C# 实现简单打印(三)-认识打印控件,创建一个带打印功能的程序
- 第十三周项目1.4创建一个长度为16的数组,删除3的倍数的数,输出剩下的数
- 用C语言模拟实现一个通讯录,要求实现其添加、删除、修改、查找、显示和排序联系人信息的功能
- c++抽象类的派生类不实现基类的纯虚函数,那么该派生类仍然为一个抽象类
- 1,随机一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- [置顶] Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。