最新作业1类与对象答案资料.doc

上传人:scccc 文档编号:12238291 上传时间:2021-12-02 格式:DOC 页数:8 大小:44KB
返回 下载 相关 举报
最新作业1类与对象答案资料.doc_第1页
第1页 / 共8页
最新作业1类与对象答案资料.doc_第2页
第2页 / 共8页
最新作业1类与对象答案资料.doc_第3页
第3页 / 共8页
最新作业1类与对象答案资料.doc_第4页
第4页 / 共8页
最新作业1类与对象答案资料.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《最新作业1类与对象答案资料.doc》由会员分享,可在线阅读,更多相关《最新作业1类与对象答案资料.doc(8页珍藏版)》请在三一文库上搜索。

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

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

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

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

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

6、ta.a2<<endl;分析:出错原因:构造函数参数表语法错;构造函数没有函数体;类的对象不能 直接访问类的私有成员变量。改正后的程序如下:#include<iostream.h>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);cout<<data.geta1()<<endl;cout<<data.geta2()&

7、lt;<endl;例题 12:分析以下程序的错误原因,给出修改方案使之能正确运行。#include <iostream.h>class Amplifierfloat invol,outvol;public: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);cout<<"nnThe gain is =>"

8、;<<gain()<<endl;分析:成员函数在类体外定义格式是: 函数返回类型类名:成员函数名 (参数表);成员函数调用格式是:对象名 . 成员函数名(参数表)。改正后的程序如下:#include <iostream.h>class Amplifierfloat invol,outvol;public:invol=vin;outvol=vout;Amplifier(float vin,float vout) float gain();float Amplifier:gain() return outvol/invol; void main() Amplif

9、ier amp(5.0,10.0);cout<<"nnThe gain is =>"<<amp.gain()<<endl;例题 14:定义一个学生类,其中有 3 个数据成员:学号、姓名、年龄,以及若 干成员函数。同时编写 main 函数使用这个类,实现对学生数据的赋值和输出。程序代码如下:#include<iostream.h>#include<string.h>class student int no;char name10;int age;public:student(int i, char *str,

10、int g)no=i;strcpy(name,str);age=g;student( )no=0;strcpy(name, ”none”);age=-1;void display()if (no>0)cout<< ”no” <<no<<”:”<<name<<” is ”<<age<<”n”;elsecout<<”no”<<no<<”: None! n”;void main() student d1(1001, ”Tom”,18);d1.display();student d2;d2.display();

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1