




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、选择题1.标志着C+从面向过程变成面向对象的主要措施是( D )。A.增加了新的运算符 B.允许函数重载,设置默认参数C.规定函数声明必须用原型 D.引用了类和对象的概念 2.有关类的说法错误的是( D )。A.类是一种用户自定义的数据类型B.只有类中的成员函数才能存取类中的私有数据C.在类中如果不作特殊说明,所指的数据均为私有类型D. 在类中如果不作特殊说明,所指的成员函数均为公有类型 3.有关类和对象的说法错误的是( C )。A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一
2、个对象D.类与对象的关系和数据类型与变量的关系相似 4.下列关于构造函数的描述中,错误的是( D )。A.构造函数的函数名与类名相同 B.构造函数可以重载C.构造函数可以设置默认参数 D.构造函数必须指定类型说明 5.对任意一个类,析构函数的个数最多为( B )个。 . 6.通常拷贝构造函数的参数是( D )。 A.某个对象名
3、60; B.某个对象的成员名 C.某个对象的指针名 D.某个对象的引用名 7.已知A是一个类,则执行语句A a;时,将自动调用该类的( B )。A.有参构造函数 B.无参构造函数C.拷贝构造函数 D.赋值构造函数二、简答题 1.比较C+中的结构(struct)和类(cl
4、ass)的概念的相同和不同之处。 答:相同处:struct和class都可以包含成员函数和数据成员,struct和class都可以继承,struct和class都可以实现多态不同处:struct和class的默认继承访问权限不同,struct默认是public的,class默认是private 2.类中的公有(public)成员和私有(private)成员有什么区别 答:公有权限的数据成员或成员函数可以作为与外界联系的公共接口,由外界访问,称为类的外部接口,外界只能通过公有成员这个借口与类发生联系.共有成员不仅可以由该类的成员函数访问,还可以在类外的程序中通过对象
5、来访问. 私有成员只能通过该类的成员函数或友元函数访问,在类外的程序中不能通过对象来访问,对私有成员来说,来自类外的任何访问都是非法的.通常将类中的数据成员全部或大部分定义为私有的,这是类封装体最隐蔽的部分,实现了类内部数据的有效保护,提高了类封装数据的安全性.在类外,可以通过对象调用共有成员函数,实现对私有成员的访问. 3.构造函数和析构函数的作用是什么 答:构造函数是类中一个特殊的成员函数,他的作用是为对象的数据成员分配存储空间,对数据成员赋初值.析构函数的作用与构造函数正好相反,它用来完成对象被删除前的一些内存释放工作. 4.构造函数是否可以重载为
6、什么析构函数呢 答:构造函数可以重载,因为一个类可以定义无参数或者参数个数不同的多个构造函数.析构函数不可以重载,因为析构函数没有参数,不可以像构造函数一样重载. 5.拷贝构造函数的作用是什么何时调用拷贝构造函数 答:拷贝构造函数的作用是用一个已存在的对象去初始化创建一个同类的新对象.拷贝构造函数一般在三种情况下调用:1.用已存在的对象去初始化创建同类的一个新对象.2.对象作为函数的参数3.函数的返回值为一个对象 6.分析下面的程序,写出运行结果。 程序():#include <>class exapint x,y; pu
7、blic:exap(int a,int b) x=a;y=b; exap(exap &P)x=; y=;int set(int x1,int y1) x=x1; y=y1;int geta() return a; int getb() return b; void main() exap A(1,2); exap B=A; cout<<"A=&qu
8、ot;<<()<<","<<()<<endl;cout<<"B="<<()<<","<<()<<endl;(10,20);cout<<"B="<<()<<","<<()<<endl;运行结果:A=1,2B=1,2B=10,20Press any key to continue 程序(2
9、):#include <>#include <>class example1public: example1() cout<<"constructing example1."<<endl; example1()
10、 cout<<"destructing example1."<<endl; ;class example2public: example2() cout<<"constructing example2 ."<<endl;
11、60; example2() cout<<"destructing example2."<<endl; ;void main() example1 stu1; example2 tea1; cout<<"end in main"<<
12、;endl;运行结果:constructing example1.constructing example2 .end in maindestructing example2.destructing example1.Press any key to continue 7.设类A的定义如下: class A int a; 若用类A定义了两个对象x1,
13、x2,它们各自的数据成员a是同一个变量吗取值是否可以不同 答:是同一个变量,因为创建对象通过构造函数构造的数据成员都是同一个变量,可以取值不同,调用构造函数时若传递的实参不同或者无参数时,即可以使构造的数据成员取值不同. 8.下面是一个产品类Product的定义。完成成员函数的定义,并用数据测试这个类。 class Product char *name; #include<>#include<>class Cuboid
14、int length;int width;int height;public:Cuboid(int l=0,int w=0,int h=0)length=l;width=w;height=h;Cuboid()cout<<"析构函数已调用"<<endl;void areavolume(int length,int width,int height);void Cuboid:areavolume(int length,int width,int height)int area,volume;area=(length*width+width*height+
15、length*height)*2;volume=length*width*height;cout<<"表面积为"<<area<<endl;cout<<"体积为"<<volume<<endl;void main()int l,w,h;cout<<"请输入长方体的长,宽,高:"<<endl;cin>>l>>w>>h;Cuboid C1(l,w,h);(l,w,h);#include<>#inclu
16、de<>class Cuboidint length;int width;int height;public:Cuboid(int l=0,int w=0,int h=0)length=l;width=w;height=h;Cuboid()cout<<"析构函数已调用"<<endl;void areavolume();void Cuboid:areavolume()cout<<"表面积为"<<(length*width+width*height+length*height)*2<<e
17、ndl;cout<<"体积为"<<length*width*height<<endl;void main()int l,w,h;cout<<"请输入长方体的长,宽,高:"<<endl;cin>>l>>w>>h;Cuboid C1(l,w,h);();2.#include <>class pointint x;int y;public:point(int xp=0,int yp=0)x=xp;y=yp;int getx()return x;int g
18、ety()return y;void main()int x,y;cout<<"请输入x和y的值:"<<endl;cin>>x>>y;point p1(x,y);cout<<"x的值为"<<()<<",y的值为"<<()<<endl;4. #include<>#include<>#define N 20class Studentlong ID;char nameN;int score1;int score
19、2;public:Student(long ID1,char *n,int s1,int s2);Student()cout<<"析构函数已调用"<<endl;void display();void average();Student:Student(long ID1,char *n,int s1,int s2)ID=ID1;strcpy(name,n);score1=s1;score2=s2;void Student:display()cout<<"学生信息:"<<endl;cout<<&qu
20、ot;姓名:"<<name<<endl;cout<<"学号:"<<ID<<endl;cout<<"成绩1:"<<score1<<endl;cout<<"成绩2:"<<score2<<endl;void Student:average()cout<<"该学生两门课的平均成绩为:"<<(score1+score2)/2<<endl;void m
21、ain()long ID;char nameN;int score1;int score2;cout<<"请输入学生姓名,学号,第一科目成绩,第二科目成绩:"<<endl;cin>>name>>ID>>score1>>score2;Student S1(ID,name,score1,score2);();();5.#include<>#include<>#define N 20class Studentlong ID;char nameN;int score1;int score2;public:Student(long ID1,char *n,int s1,int s2)ID=ID1;strcpy(name,n);score1=s1;score2=s2;Student(Student& obj)ID=;str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32/T 4311-2022鲜食葡萄轻简化栽培技术规范
- DB32/T 4206-2022微型月季潮汐灌溉栽培技术规程
- DB32/T 3861-2020麦棉轮作两熟全程机械化生产技术规程
- DB32/T 3659-2019樱桃番茄电商销售贮运技术规程
- DB32/T 3637-2019土地综合整治工程建设规范
- DB31/T 699-2013政府系统值守应急管理要求
- DB31/T 378-2018旅馆服务质量要求
- DB31/T 1386-2022穴位贴敷服务规范
- DB31/T 1110.2-2018食品和食用农产品信息追溯第2部分:数据元
- CAB 1018-2013汽车皮革类方向盘套
- 医院营养科建设方案
- 幼儿园伙食费管理制度
- 网络安全服务方案
- 【MOOC】现代邮政英语(English for Modern Postal Service)-南京邮电大学 中国大学慕课MOOC答案
- 巨量千川营销师(初级)认证考试复习题库(含答案)
- 1学会尊重-《每个人都应得到尊重》(说课稿)2023-2024学年统编版道德与法治四年级下册
- 教室租赁合同范本教程
- 商用厨房设备搬迁实施方案
- 执业药师资格考试试题及答案
- 《供应链管理》课件 第7章 供应链运输管理
- 书法测评基础理论知识单选题100道及答案解析
评论
0/150
提交评论