多态练习题

合集下载

java复习中南

java复习中南

第四章。
• 如果变量a中有一个值,变量b中有一个值,如何将两个变量 中的值互换? 1、运用临时变量 temp = a; a = b; b = temp; 2、不用临时变量(加减运算) a = a + b; b = a - b; a = a - b; 关于你们老师问的能不能用乘除运算,我觉得不可以,我猜因 为分母为零呵呵,,不知道是不是?
obj1.fn=31 obj1.fk=40 obj2.fn=32 obj2.fk=40
第六章
1、继承(extends) 这个讲继承ppt实在是乱七八糟,找书看吧,看不下去 了。。。T-T 2、多态 动态多态:重写或覆盖(Override),通过继承,子类覆盖 父类中的方法【一般重写的是函数】***要求子类的成员 函数与父类的函数名称相同,参数列表相同,返回类型相 同*** 静态多态:重载(Overload)(重载的作用就是让程序员少 记一些函数的名字),在同一个类中,【我们学的也是函 数的重载】***函数名字相同,必须满足下列条件之一:1、 参数个数不同 2、参数个数相同,类型不同 3、参数个 数相同,类型相同,但是在参数列表中出现的顺序不同。 特别注意:返回类型不同不能作为判断的依据。***
练习题:
1. 下列( B )是不能通过编译的语句。
A.double d = 545.0; C.int i = 321; int a = 10; B.char a1 = “c”;
char a1 = 'c'
D.float f1 =45.0f;
2.执行下列程序代码的输出结果是( 10,11,11 )。
int i, j;
AB
3.下列关于构造方法的叙述中,错误的是
( D )。?????????? A.构造方法名与类名必须相同 B.构造方法没有返回值,且不用void声明 C.构造方法只能通过new自动调用 D.构造方法不可以重载,但可以继承

java 接口的练习题

java 接口的练习题

java 接口的练习题Java接口的练习题在Java编程语言中,接口(Interface)是一种特殊的引用类型,它可以理解为一种约定或契约,用于规定类所需要实现的方法。

在本篇文章中,我们将通过一些练习题来巩固和提升对Java接口的理解和运用。

练习一:接口的基本使用请定义一个名为Shape的接口,该接口中应包含计算面积的方法和计算周长的方法。

具体要求如下:```javapublic interface Shape {double getArea();double getPerimeter();}```接下来,请创建一个名为Rectangle的类,该类实现Shape接口,并且包含长度和宽度两个属性,并分别实现计算面积和计算周长的方法。

具体要求如下:```javapublic class Rectangle implements Shape {private double length;private double width;public Rectangle(double length, double width) {this.length = length;this.width = width;}@Overridepublic double getArea() {return length * width;}@Overridepublic double getPerimeter() {return 2 * (length + width);}}```最后,请编写一个测试类,验证Rectangle类的功能是否正确。

具体要求如下:```javapublic class TestShape {public static void main(String[] args) {Rectangle rectangle = new Rectangle(5, 4);System.out.println("矩形的面积:" + rectangle.getArea());System.out.println("矩形的周长:" + rectangle.getPerimeter());}}```运行上述测试类,输出的结果应为:```矩形的面积:20.0矩形的周长:18.0```练习二:接口的多态性请在Shape接口中增加一个方法用于打印形状的信息,并在Rectangle类中对该方法进行实现。

多做练习题

多做练习题

多做练习题一、基础概念理解2. 简述面向对象编程中的封装、继承、多态的概念。

4. 请说明什么是事件驱动编程以及其应用场景。

5. 简述数据库中的SQL语言的作用及其基本命令。

二、数据结构与算法1. 请列举常用的线性数据结构。

2. 描述二叉树的特点及其常见操作。

3. 简述排序算法的类别,并给出冒泡排序和快速排序的基本思想。

4. 请解释什么是哈希表,并说明其查找和插入的时间复杂度。

5. 描述图的表示方法以及图的遍历算法。

三、编程语言特性1. 请列举Python中的几种基本数据类型。

2. 简述Java中的泛型以及其作用。

3. 描述C++中的指针与引用的区别。

4. 请说明JavaScript中闭包的概念及其应用。

5. 简述TypeScript中的类型注解和类型推断。

四、软件工程1. 请解释软件开发生命周期模型。

2. 简述敏捷开发的核心价值观和原则。

3. 描述单元测试、集成测试和系统测试的区别。

4. 请说明版本控制系统的作用以及Git的基本操作。

5. 简述软件架构设计的基本原则。

五、网络与通信1. 请解释TCP/IP协议栈的层次结构。

2. 描述HTTP协议的工作原理及其常见方法。

3. 简述RESTful API的设计原则。

4. 请说明Websocket协议的特点及其应用场景。

5. 描述网络安全的常见威胁及其防范措施。

六、数据库技术1. 请列举关系型数据库的常见类型。

2. 简述数据库范式及其作用。

3. 描述索引的作用及其类型。

4. 请说明事务处理的基本概念及其特性。

5. 简述数据库的备份与恢复策略。

七、操作系统1. 请解释进程与线程的区别。

2. 描述内存管理的基本策略。

3. 简述文件系统的常见类型及其特点。

4. 请说明操作系统的调度算法。

5. 描述操作系统的安全机制。

1. 请解释机器学习的基本概念及其分类。

2. 描述深度学习的基本原理。

3. 简述自然语言处理的基本任务。

4. 请说明计算机视觉的主要应用领域。

5. 描述强化学习的基本思想。

c++多态性与虚函数习题

c++多态性与虚函数习题

作业题一、写出下列程序运行结果1.#include<iostream>using namespace std;class A {public:virtual void func( ) {cout<<”func in class A”<<endl;} };class B{public:virtual void func( ) {cout<<”func in class B”<<endl;} };class C:public A,public B{public:void func( ) {cout<<”func in class C”<<endl:}};int main( ){C c;A& pa=c;B& pb=c;C& pc=c;pa.func( );pb.func( );pc.func( );}2.#include<iostream>using namespace std;class A{public:virtual ~A( ){cout<<”A::~A( ) called “<<endl; }};class B:public A{char *buf;public:B(int i) { buf=new char[i]; }virtual ~B( ){delete []buf;cout<<”B::~B( ) called”<<endl;}};void fun(A *a) {delete a;}int main( ){ A *a=new B(10);fun(a);}二、程序设计题1有一个交通工具类vehicle,将它作为基类派生小车类car、卡车类truck和轮船类boat,定义这些类并定义一个虚函数用来显示各类信息。

5.2定义一个shape抽象类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area( )。

c++多态性与虚函数习题答案

c++多态性与虚函数习题答案

多态性与虚函数1.概念填空题1.1 C++支持两种多态性,分别是编译时和运行时。

1.2在编译时就确定的函数调用称为静态联编,它通过使用函数重载,模板等实现。

1.3在运行时才确定的函数调用称为动态联编,它通过虚函数来实现。

1.4虚函数的声明方法是在函数原型前加上关键字virtual。

在基类中含有虚函数,在派生类中的函数没有显式写出virtual关键字,系统依据以下规则判断派生类的这个函数是否是虚函数:该函数是否和基类的虚函数同名;是否与基类的虚函数参数个数相同、类型;是否与基类的虚函数相同返回类型。

如果满足上述3个条件,派生类的函数就是虚函数。

并且该函数覆盖基类的虚函数。

1.5 纯虚函数是一种特别的虚函数,它没有函数的函数体部分,也没有为函数的功能提供实现的代码,它的实现版本必须由派生类给出,因此纯虚函数不能是友元函数。

拥有纯虚函数的类就是抽象类类,这种类不能实例化。

如果纯虚函数没有被重载,则派生类将继承此纯虚函数,即该派生类也是抽象。

3.选择题3.1在C++中,要实现动态联编,必须使用(D)调用虚函数。

A.类名B.派生类指针C.对象名D.基类指针3.2下列函数中,不能说明为虚函数的是(C)。

A.私有成员函数B.公有成员函数C.构造函数D.析构函数3.3在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值(A)。

A.相同B.不同C.相容D.部分相同3.4当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中(A)。

A.都是虚函数B.只有被重新说明时才是虚函数C.只有被重新说明为virtual时才是虚函数D.都不是虚函数3.5(C)是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

A.虚析构函数B.虚构造函数C.纯虚函数D.静态成员函数3.6 以下基类中的成员函数,哪个表示纯虚函数(C)。

A.virtual void vf(int);B.void vf(int)=0;C.virtual void vf( )=0;D.virtual void vf(int){ }3.7下列描述中,(D)是抽象类的特性。

接口编程练习题

接口编程练习题

接口编程练习题在软件开发中,接口编程是一项非常重要的技能。

通过接口编程,我们可以实现不同模块之间的通信和交互,提高代码的可复用性和可维护性。

为了帮助大家熟悉接口编程,我将给出一些接口编程的练习题,供大家实践和探索。

练习题一:接口定义请定义一个名为"Shape"的接口,具有计算面积和计算周长的两个方法。

这个接口可以被不同的图形类实现,比如圆形、正方形等。

每个图形类都需要实现这两个方法,并根据具体的形状计算出相应的面积和周长。

练习题二:接口的实现请创建一个圆形类"Circle",实现上述"Shape"接口,并根据半径计算圆形的面积和周长。

具体的计算公式可以自行选择。

练习题三:多态性应用请创建一个方法"printShapeInfo",接收一个"Shape"类型的参数,并打印该图形的面积和周长信息。

在方法内部,借助接口的多态性,可以接收不同形状的图形对象,并调用对应的方法。

练习题四:接口的扩展请思考并设计一个扩展"Shape"接口的子接口或实现类,增加计算体积的方法。

然后创建一个相应的图形类,实现该接口,并实现计算体积的方法。

练习题五:接口的应用场景请思考并描述在实际项目中,接口编程可以带来哪些好处和应用场景。

举例说明接口编程在实践中的应用情景,以及通过接口编程实现的功能和效果。

通过以上的练习题,我们可以初步了解和掌握接口编程的基本概念和用法。

接口编程的灵活性和可扩展性使得我们可以更好地进行模块化开发和代码复用,提高项目的开发效率和质量。

在实际的软件开发中,合理地运用接口编程可以帮助我们更好地组织和管理代码,提高系统的可维护性和可拓展性,是一个非常重要的编程技能。

希望大家通过这些接口编程的练习题,能够更加深入地理解和应用接口编程的思想和方法,为自己的软件开发能力提升打下坚实的基础。

希望大家能够在实践中不断探索和学习,不断提高自己的编程水平。

C++习题3(继承和多态)

C++习题3(继承和多态)

C++习题3(继承和多态)C++习题3(继承和多态)一、选择题1、在C++中,类与类之间的继承关系具有( C )A)自反性 B)对称性 C)传递性 D)反对称性2、在公有继承的情况下,基类的成员(私有的除外)在派生类中的访问权限( B )A)受限制 B)保持不变 C)受保护 D)不受保护3、按解释中的要求在下列程序划线处填入的正确语句是:( C )#include class Base{public:void fun(){cout<<"Base::fun"<<=""> fun()cout<<"Derived::fun"<fun();4、在保护继承的情况下,基类的成员(私有的除外)在派生类中的访问权限( C )A)受限制 B)保持不变 C)受保护 D)不受保护5、在哪种派生方式中,派生类可以访问基类中的protected 成员(B )A)public和private B)public、protected和private C)protected和private D)仅protected6、当一个派生类仅有protected继承一个基类时,基类中的所有公有成员成为派生类的(C)A)public成员 B)private成员 C)protected成员 D)友元7、不论派生类以何种方法继承基类,都不能使用基类的(B )A)public成员 B)private成员 C)protected成员 D)public成员和protected成员8下面叙述错误的是(S )。

A )基类的protected成员在派生类中仍然是protected的 B)基类的protected成员在public派生类中仍然是protected的C)基类的protected成员在private派生类中是private的 D)基类的protected 成员不能被派生类的对象访问9、下列说法中错误的是(S )。

动物学练习题一

动物学练习题一

动物学练习题一一、是非题(对的打“√”,错的打“×”)1.双名法是国际上对种统一采用的命名法,它是由拉丁文或拉丁化的文字组成,属名在前,种名在后,属名和种名的第一个字母都要大写。

()2.生物重演律指出系统发育能够重演个体发育的主要过程。

()3.原生动物是单细胞构成的完整的有机体,作为一个动物体是最简单的,但作为一个细胞却很复杂。

()4.有些原生动物以群体的形式存在。

()5.草履虫在有光的情况下进行光合营养,无光情况下进行吞噬营养。

()6.海绵动物和腔肠动物都是两胚层动物。

( )7.海绵动物是一类在海里行漂浮生活的动物。

(×)8.海绵动物又称为多孔动物或侧生动物。

()9.海绵动物无真正的胚层,只有原始的细胞分化,无明确的组织。

()10.海绵动物是最原始最低等的多细胞动物,它有了细胞分化,但没有明确的组织。

()11.海绵动物的体腔不发达,因此它是最原始最低等的多细胞动物。

()12.海绵动物是真正后生动物的开始。

()13.腔肠动物的水管系统与棘皮动物的水管系统同源,都是属于次生体腔的一部分。

( )14.腔肠动物是两胚层动物。

()15.腔肠动物具有两种基本形态:水螅型和水母型。

()16.珊瑚全部生活在海洋中。

()17.腔肠动物是一类比较高等的原生动物。

()二.填空题:1.动物界的分类阶梯是______、______、______、______、______、______;用英文表示分别是______、______、______、______、______和______。

2.五界学说将生物分为以下五个界:_______界、_______界、_______界、_______界和_______界。

3.动物的四大组织为:________、________、________、________。

4.动物命名的双名法由两部分组成,第一部分是该物种的,第二部分是该物种的,最后加上定名人。

5.一群相同或相似的细胞及其相关的非细胞物质彼此以一定的形式连接,并形成一定的结构,担负一定的功能,称为。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、生成表示学生的类XS,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄,并将他们全部定义为纯虚函数;生成CZS类表示初中生,包含数据成员xm、xb和nl表示学生的姓名、性别和年龄,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄;再生成类GZS表示高中生和类DXS表示大学生,同样包含相同含义的数据成员xm、xb和nl,也包括成员函数dispXM()、dispXB()和dispNL()。

要求:(1)设计和实现基本类XS(2)设计和实现派生类CZS,GZS和DXS(3)分别生成CZS、GZS、DXS类对象(4)将CZS、GZS、DXS类对象的指针赋给指针赋给XS类的指针变量。

(5)分别用XS类的指针和引用访问dispXM()、dispXB()和dispNL()函数。

(6)观察程序结果。

#include <iostream>#include <string.h>using namespace std;class XS{public:virtual void dispXM()=0;virtual void dispXB()=0;virtual void dispNL()=0;};class CZS:public XS{public:CZS(char * m="张三",int b=1,int n=14);void dispXM();void dispXB();void dispNL();protected:char xm[9];int xb,nl;};CZS::CZS(char *m,int b,int n){strcpy(xm,m);xb=b,nl=n;}void CZS::dispXM(){cout<<"name:"<<xm<<endl;}void CZS::dispXB(){if(xb==1)cout<<"Man"<<endl;if(xb==0)cout<<"Woman"<<endl;}void CZS::dispNL(){cout<<"age:"<<nl<<endl;}class GZS:public XS{public:GZS(char * m="张三",int b=1,int n=17);void dispXM();void dispXB();void dispNL();protected:char xm[9];int xb,nl;};GZS::GZS(char *m,int b,int n){strcpy(xm,m);xb=b,nl=n;}void GZS::dispXM(){cout<<"name:"<<xm<<endl;}void GZS::dispXB(){if(xb==1)cout<<"Man"<<endl;if(xb==0)cout<<"Woman"<<endl;}void GZS::dispNL(){cout<<"age:"<<nl<<endl;}class DXS:public XS{public:DXS(char * m="张三",int b=1,int n=20);void dispXM();void dispXB();void dispNL();protected:char xm[9];int xb,nl;};DXS::DXS(char *m,int b,int n){strcpy(xm,m);xb=b,nl=n;}void DXS::dispXM(){cout<<"name:"<<xm<<endl;}void DXS::dispXB(){if(xb==1)cout<<"Man"<<endl;if(xb==0)cout<<"Woman"<<endl; }void DXS::dispNL(){cout<<"age:"<<nl<<endl;}void displayP(XS *p){p->dispXM();p->dispXB();p->dispNL();}void displayR( XS &p){p.dispXM();p.dispXB();p.dispNL();}void main(){CZS czs("赵一",1,12);GZS gzs("钱二",0,15);DXS dxs("孙三",1,18);XS *p;//定义抽象基类的指针变量pp=&czs;//将初中生对象czs的地址赋给pdisplayP(p);p=&gzs;//将高中生对象czs的地址赋给pdisplayP(p);p=&dxs;//将大学生对象czs的地址赋给pdisplayP(p);cout<<"\n----------------------------------------\n";XS &r1=czs;//定义抽象基类的引用变量r1为czs的别名displayR(r1);XS &r2=gzs;//定义抽象基类的引用变量r2为czs的别名displayR(r2);XS &r3=dxs;//定义抽象基类的引用变量r3为czs的别名displayR(r3);cout<<"\n----------------------------------------\n";}2、某小型公司主要有3类人员:经理、兼职技术人员、兼职销售员。

这些人员分别具有以下属性。

经理:姓名、编号、固定工资、当月薪水、计算月薪、显示信息兼职技术人员:姓名、编号、工作小时、每小时工资额、当月薪水、计算月薪、显示信息;兼职销售员:姓名、编号、销售额、销售额提成、当月薪水、计算月薪、显示信息要求:人员编号基数为1000,每输入一个人员信息编号顺序加1月薪计算办法是经理固定月薪8000元;兼职技术人员按100元/小时领取月薪;兼职推销员按当月销售额的4%提成。

根绝题目要求,设计一个基类employee,然后派生出technician (兼职技术人员)类、manager(经理)类和salesman(兼职销售员)类。

部分成员函数设置为虚函数将“<<”和“>>”运算符#include <iostream>#include <iomanip>#include <string.h>#include <fstream>using namespace std;const int Maxr=100;class Employee //职工类{int tag;//删除标记int no;//职工编号char name[20];char zw[20];//职工姓名int salary;//职工工资public:Employee(){}char *getname() {return name;}//获取名字int gettag() {return tag;}//获取标记int getno() {return no;}//获取编号int getsalary(){return salary;}void setzw(char q[])//设置名字{strcpy(zw,q);}void setname(char na[])//设置名字{strcpy(name,na);}void getsalary(int sa){salary=sa;}void delna(){tag=1;}//删除void addemp(int n,int sa,char *na,char *q)//增加{tag=0;no=n;salary=sa;strcpy(name,na);strcpy(zw,q);}void disp()//显示职工信息{cout < <"│" < <setw(10) < <no < <"│" < <setw(10) < <name < <"│" < <setw(10) < <salary < <"│" < <setw(10) < <zw < <"│" < <endl;cout < <"├—————┼—————┼—————┼—————┤" < <endl;}};class Database//职工数据类{int top;Employee read[Maxr];public:Database()//将职工信息从employee.txt读取到read[]中{ Employee s;top=-1;fstream file("employee.txt",ios::in);while (1){((char *)&s,sizeof(s));if (!file) break;top++;read[top]=s;}();}void clear()//删除所有{top=-1;}int addemp (int n, int sa,char *na,char*q) //增加职工{Employee *p=query(n);if (p==NULL){top++;read[top].addemp(n,sa,na,q);return 1;}return 0;}Employee *query(int empid){for (int i=0;i <=top;i++)if (read[i].getno()==empid && read[i].gettag()==0) return &read[i];return NULL;}Employee *query1(char empna[20]){for (int i=0;i <=top;i++)if ((read[i].getname()==empna) && read[i].gettag()==0)return &read[i];return NULL;}void disp() //职工信息显示{for (int i=0;i <=top;i++)read[i].disp();}void empdata();~Database() //将read[]中的信息读如到employee.txt中{fstream file("employee.txt",ios::out);for (int i=0;i <=top;i++)if (read[i].gettag()==0)((char *)&read[i],sizeof(read[i]));();}};void Database::empdata()//职工维护{int choice=1;int m=1;int b=1;char rname[20];int empid; int empsa;char q[20];Employee *r;while (choice!=0){cout < <"职工维护1:新增2:更改3:删除4:查找5:显示6:全删0:退出=>"; cin>>choice;switch (choice){case 1:cout < <setw(50) < <" ┌—————————————┐\n";cout < <setw(50) < <" │ 请选择您所需的操作│\n";cout < <setw(50) < <" │ 经理:1,并按回车键│\n";cout < <setw(50) < <" │ 业务经理:2,并按回车键│\n";cout < <setw(50) < <" │ 普通职工:3,并按回车键│\n";cout < <setw(50) < <" └—————————————┘\n";cin>>m;while(m!=0){switch(m){case 1:cout < <"输入经理编号:";cin>>empid;cout < <"输入奖金: ";cin>>empsa;cout < <"输入经理姓名:";cin>>rname;addemp(empid,8000+empsa,rname,"经理"); break;case 2:cout < <"输入业务经理编号:";cin>>empid;cout < <"输入月提成: ";cin>>empsa;cout < <"输入业务经理姓名:";cin>>rname;addemp(empid,4000+empsa,rname,"业务经理"); break;case 3:cout < <"输入职工编号:";cin>>empid;cout < <"输入工资: ";cin>>empsa;cout < <"输入职工姓名:";cin>>rname;addemp(empid,empsa,rname,"普通职工"); break;}break;}break;case 2:cout < <"输入职工编号:";cin>>empid;r=query(empid);if (r==NULL){cout < <"该职工不存在" < <endl;break;}cout < <"输入新的工资:" < <endl;cin>>empsa;r->getsalary(empsa);cout < <"请输入新的职务" < <endl;cin>>q;r->setzw(q);addemp(empid,empsa,rname,q);break;case 3:cout < <"输入职工编号:";cin>>empid;r=query(empid);if (r==NULL){cout < <"该读者不存在" < <endl;break;}r->delna();break;case 4:cout < <setw(50) < <" ┌—————————————┐\n";cout < <setw(50) < <" │ 请选择您所需的操作│\n";cout < <setw(50) < <" │ 按编号查找1,并按回车键│\n";cout < <setw(50) < <" │ 返回2,并按回车键│\n";cout < <setw(50) < <" └—————————————┘\n";cin>>b;while(b!=0){switch(b){case 1:cout < <"输入职工编号:";cin>>empid;r=query(empid);if (r==NULL){cout < <"该职工不存在" < <endl;break;}cout < <"├—————┼—————┼—————┼—————┤" < <endl;cout < <"│" < <setw(10) < <"编号" < <"│" < <setw(10) < <"姓名" < <"│" < <setw(10) < <"工资" < <"│" < <setw(10) < <"职务" < <"│" < <endl;cout < <"├—————┼—————┼—————┼—————┤" < <endl;r->disp();break;case 2:break;}break;}break;case 5:cout < <"├—————┼—————┼—————┼—————┤" < <endl;cout < <"│" < <setw(10) < <"编号" < <"│" < <setw(10) < <"姓名" < <"│" < <setw(10) < <"工资" < <"│" < <setw(10) < <"职务" < <"│" < <endl;cout < <"├—————┼—————┼—————┼—————┤" < <endl;disp();break;case 6:clear();break;}}}void main(){int choice=1;Database EmpDB;while(choice!=0){cout < <"***************************************************************************** ***" < <endl;cout < <endl;cout < <endl;cout < <setw(20) < <"******************************欢迎使用职工管理系统******************************" < <endl;cout < <endl;cout < <endl;cout < <setw(50) < <" ┌—————————————┐\n";cout < <setw(50) < <" │ 请选择您所需的操作│\n";cout < <setw(50) < <" │ │\n";cout < <setw(50) < <" │ 操作1,并按回车键│\n";cout < <setw(50) < <" │ │\n";cout < <setw(50) < <" │ 返回0,并按回车键│\n";cout < <setw(50) < <" └—————————————┘\n";cin>>choice;switch(choice){case 1:while(1){cout < <setw(20);EmpDB.empdata();break;break;}}}}3、堆栈的特点是:先进先出定义了一个堆栈类stack,包括初始化,压栈(就是将元素放在栈顶)、弹栈(取栈顶的一个元素),释放堆栈等操作要求运用模版实现,堆栈中可以根据需求放入double、int、char*等数据对象。

相关文档
最新文档