作业1 类与对象答案.docx

上传人:小飞机 文档编号:3273097 上传时间:2023-03-12 格式:DOCX 页数:5 大小:38.32KB
返回 下载 相关 举报
作业1 类与对象答案.docx_第1页
第1页 / 共5页
作业1 类与对象答案.docx_第2页
第2页 / 共5页
作业1 类与对象答案.docx_第3页
第3页 / 共5页
作业1 类与对象答案.docx_第4页
第4页 / 共5页
作业1 类与对象答案.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《作业1 类与对象答案.docx》由会员分享,可在线阅读,更多相关《作业1 类与对象答案.docx(5页珍藏版)》请在三一办公上搜索。

1、作业1 类与对象答案作业一 类与对象 1 知识要点 1 掌握类与对象的概念和定义方法,掌握类成员的访问属性。 2 掌握构造函数的概念、定义方法和使用方法。 3 掌握析构函数的概念、定义方法和使用方法。 4 掌握拷贝构造函数的概念、定义方法和使用方法。 2典型例题 例题1:下列有关类的说法不正确的是。 A 对象是类的一个实例 B 任何一个对象只能属于一个具体的类 C 一个类只能有一个对象 D 类与对象的关系和数据类型与变量的关系相似 答案:C 分析:对象是类的一个实例,类与对象的关系和数据与变量的关系相似,所以一个类可以有多个对象。 例题2:下面项是对构造函数和析构函数的正确定义。 Avoid

2、X:X, void X:X BX:X(参数), X:X CX:X(参数), X:X(参数) Dvoid X:X(参数), void X:X(参数) 答案:B 分析构造函数无返回类型、可带参数、可重载;析构函数无返回类型、不可带参数、不可重载。 例题3:的功能是对象进行初始化。 A析构函数 B. 数据成员 C.构造函数 D.静态成员函数 答案:C 分析:当一个对象定义时,C+编译系统自动调用构造函数建立该对象并进行初始化;当一个对象的生命周期结束时,C+编译系统自动调用析构函数注销该对象并进行善后工作; 例题4:下列表达方式正确的是。 Aclass P B class P public: pub

3、lic: int x=15; int x; void showcoutx; void showcoutx; ; C class P D. class P int f; public: ; int a; f=25; void Seta (int x) a=x; ; 答案:D 分析:在类体内不可对数据成员进行初始化;类定义结束时需用分号;只有类中的成员函数才能存取类中的私有数据。 例题5: 拷贝构造函数具有的下列特点中,是错误的。 A 如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的 B 拷贝构造函数只有一个参数,并且是该类对象的引用 C 拷贝构造函数是一种成员函数 D 拷贝构造函数的

4、名字不能用类名 答案:D 分析:如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的;拷贝构造函数只有一个参数,并且是该类对象的引用;拷贝构造函数的名字与类同名,并且不被指定返回类型;拷贝构造函数是一种成员函数。 例题6:设有如下程序结构: class Box ; void main Box A,B,C; 该程序运行时调用 (1) 次构造函数;调用 (2) 次析构函数。 答案:(1)3 (2)3 分析:每创建一个对象自动调用一次构造函数,在这里创建了A、B、C三个对象,所以共调用了三次构造函数;每释放一个对象,系统自动调用一次析构函数,A、B、C对象释放时,分别调用析构函数,所以析构函

5、数共调用了三次。 例题9:设A为test类的对象且赋有初值,则语句test B(A); 表示 。 答案:将对象A复制给对象B。 分析:执行test B(A);语句相当于调用了默认复制构造函数,将A对象的属性复制给B对象。 例题11:分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。 #include class one int a1,a2; public: one(int x1=0, x2=0); ; void main one data(2,3); coutdata.a1endl; coutdata.a2endl; 分析:出错原因:构造函数参数表语法错;构造函数没有函数体;

6、类的对象不能直接访问类的私有成员变量。 改正后的程序如下: #include class one int a1, a2; public: one(int x1=0, int x2=0) a1=x1;a2=x2; int geta1 return a1; int geta2 return a2; ; void main one data(2,3); coutdata.geta1endl; coutdata.geta2endl; 例题12:分析以下程序的错误原因,给出修改方案使之能正确运行。 #include class Amplifier float invol,outvol; public:

7、Amplifier(float vin,float vout) invol=vin;outvol=vout; float gain; ; Amplifier:float gain return outvol/invol; void main Amplifier amp(5.0,10.0); coutgainendl; 分析:成员函数在类体外定义格式是:函数返回类型 类名:成员函数名;成员函数调用格式是:对象名.成员函数名。 改正后的程序如下: #include class Amplifier float invol,outvol; public: Amplifier(float vin,flo

8、at vout) invol=vin;outvol=vout; float gain; ; float Amplifier:gain return outvol/invol; void main Amplifier amp(5.0,10.0); coutamp.gainendl; 例题14:定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写main函数使用这个类,实现对学生数据的赋值和输出。 程序代码如下: #include #include class student int no; char name10; int age; public: student(int i, char *str, int g) no=i; strcpy(name,str); age=g; student( ) no=0; strcpy(name,”none”); age=-1; void display if (no0) cout”no” no”:”name” is ”age” years old.n”; else cout”no”no”: None!n”; ; void main student d1(1001,”Tom”,18); d1.display; student d2; d2.display;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号