资源描述
郑州大学现代远程教育 面向对象程序设计课程考核要求说明:本课程考核形式为提交作业,完成后请保存为 WORD格式的文档,登陆学习平台提交,并检查和确认提交成功。一 作业要求1.请独立自主完成作业内容。二 作业内容一) 、简答题:(每题 5 分,共 30 分)1、异常处理的作用是什么?答:答:(1).try 和 catch 语句:将要处理的代码放入 try 块中,然后创建相应的 catch 块的列表。如果生成都异常与 catch 中提到的相匹配,那么 catch 条件中的块语句就被执行。try 块后可能有许多catch 块,每个都处理不同的异常。每个 catch 中的参数都是Exception 的子类。 (2).finally 语句:定义一个总是执行的代码,而不考虑异常是否被捕获。(3).throw 引起一个异常。2、什么是容器?什么是迭代器?什么是算法?他们之间有何关系?答:容器:容器能够通过模版的方法,装下各种类型的节点元素。迭代器:迭代器是一种 smart pointer。迭代器是一种行为类似指针的对象。迭代器所指向的对象为容器 中元素(结构体)的节点。如定义一个 class List 的容器,容器的节点为 ListItem,那么迭代器就应该指向(的对象)容器中的 ListItem 节点。 而迭代器通过重载*(解引用)运算符,从而就可以得到节点的值。通过重载 operator-运算符就可以得到容器节点地址(指针)算法:算法通过操作容器对应的迭代器,就可以间接地操作容器中的元素。而不需要关注容器的内部细节 三者之间联系: 每个容器都有专属的迭代器,而算法通过迭代器对容器中的元素进行操作。3、什么是静态成员?有何特点?答:在 c+类中声明成员时可以加上 static 关键字,这样声明的成员就叫做静态成员(包括数据成员和成员函数) 。静态成员的特点是:不管这个类创建多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象所共享。面对对象方法中还有类属性的概念,类属性是描述类的所有对象共同特征的一个数据项对于任何对象实例,它的属性值是相同的,C+通过静态数据成员来实现类属性。4、类的构造函数和析构函数有何特点?答:构造函数主要用来对成员初始化和分配空间,析构函数用于执行一些清理任务,如释放分配给对象的内存空间等。构造函数有以下特点:(1)构造函数的名字必须与类名相同;(2)构造函数可以有任意类型的参数,但不能具有返回类型;(3)定义对象时,编译系统会自动地调用构造函数;(4)构造函数是特殊的成员函数,函数体可以在类体内,也可写在类体外;(5)构造函数被声明为公有函数,但它不能像其他成员函数那样被显式调用,它是在定义对象的同时被调用的。析构函数有以下特点:(1)析构函数的名字必须与类名相同,但它前面必须加一个波浪号 ;(2)析构函数没有参数,也没有返回值,而且不能被重载,因此在一个类中只能有一个析构函数;(3)当撤销对象时,编译系统会自动地调用析构函数。5、类成员的访问权限有哪些?答:类成员的访问权限:继承有关 public 此成员都可公开调用;protected 同包或对继承的类才可公开调用,静态成员也必须继承后才能调用 A.a 或使用 public;friendly 对同包的类可以公开调用;private 只有本类实例成员方法才可调用。6、面向对象的基本要素是什么?答:抽象、继承、封装、多态;二) 、分析下面的代码,回答问题(每题 10 分,共 40 分)1下面程序的执行结果是什么?为什么?class Bprotected:virtual void f( )coutf()调用 C 中的 f。2下面程序的执行结果是什么?为什么?class Apublic:int n;class B:public A;class C:public A;class D:public B, public Cint getn() return B:n;void main()D d;d.B:n=10;d.C:n=20;coutdisp();void main()B b;C c;Cdisp(Cdisp(答:输出:class B class C B 类和 c 类是 a 类的派生,p 作为参数时,是一个 A 的指针,但是编译时,调的 disp 是各自继承类成员函数。 所以输出是 class B,class C。三、根据要求编写程序:(每题 15 分,共 30 分)1 设计一个父亲类 Father、母亲类 Mother 和子女类 Child,其主要数据是姓名,子女使用父亲的姓,最后输出子女的姓名和父母姓名。答:程序如下:#include #include using namespace std; class father public: father() father(string x,string m) this-x=x; this-m=m; void getx() cout #include #include using namespace std; class Triangle private: double x,y,z; double p,m; static double s; public: Triangle(double a,double b,double c) x=a; y=b; z=c; p=(y+x+z)/2; m=sqrt(p*(p-x)*(p-y)*(p-z); s=s+m; void print() coutabc) cina1b1c1; Triangle s1(a,b,c); Triangle s2(a1,b1,c1);s1.print(); s2.print(); Triangle:show(); return 0;
展开阅读全文