欢迎来到天天文库
浏览记录
ID:42769062
大小:88.50 KB
页数:11页
时间:2019-09-21
《郑州大学《面向对象程序设计》课程作业》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、郑州大学现代远程教育《面向对象程序设计》课程考核要求说明:本课程考核形式为提交作业,完成后请保存为WORD格式的文档,登陆学习平台提交,并检查和确认提交成功。一.作业要求1.请独立自主完成作业内容。二.作业内容一)、简答题:(每题5分,共30分)1、声明类的一般格式是什么?答:声明一个类一般格式为:classCStudent{public:protected:private:};2.类的定义层次如下图所示。请问生成类G的对象时构造函数调用的顺序是怎样的?答:如果继承顺序是从左到右的话,那么结果为:ACDEABFG3、类成员的访问权限有哪些?答:成员的访问权限如下:Public
2、:任何人,尤其是那些要使用这个类库的客户程序员,都能访问那个紧跟在public后面声明的成员。默认的package:在同一个目录里面的文件,并且都没有明确指明它是属于哪个package的。Java会认为这类文件是属于这个目录的“默认package"的,因此对这个目录里边的其它文件来说,它们就都是package权限的了。private:除非是用这个类(包含这个成员的类)的方法,否则一律不得访问。package里的其它类也不能访问private成员。一个package很可能是由好几个人合作开发的,因此private能让你根据自己的需要修改那些成员,而不用担心这么做会不会对别的类产
3、生影响。protected:package里面的类,那么你只能访问原先那个package的public成员。(当然如果是在同一个package里面继承的话,那么你还可以访问package权限的成员。)有时基类的创建者会希望派生类能访问某个成员,而其它类则不能访问。这就是protected要做的。protected也赋予成员package权限也就是说,同一个package里的其它类也可以访问protected元素。为了让代码显得更有条理,可能你选用这种风格,就是将public成员都放在类的开头,接下来是protected成员,然后是package权限的,最后是private成员
4、。这样做的好处就是,当用户从上到下读代码的时候,会先看到对他们最重要的东西(就是能在文件以外访问的public成员)。而当他们遇到非public成员的时候,就会知道这是类的内部实现部分,是无法读到的。4.友元关系具有什么特点?答:友兀关系有如下特点:第一、友元函数可以直接通过对象名访问类的私有和保护成员,可以像普通函数一样在任何地方调用。不是该类的成员函数,可以是一个普通的函数,也可以是其他类的成员函数。(朋友虽然不是家庭的成员,但容许到我们家里访问一样)第二、友元函数不属于任何类,因此可以放在类说明的任何位置,既可以在public区,也可以在private区。(友元函数看看
5、作是类的部分接口,建议岀现在public的部分)第三、友元函数不需要通过对象或对象指针来调用,可以直接调用即可。5.定义重载运算符函数的时候需要注意哪些问题?答:不能改变运算符的优先级。不能改变运算符的结合性(例如,算术运算符的结合性为从左到右,这一点不能改变)。默认参数不能喝重载的运算符一起使用,也就是说,在设计运算符重载成员函数时不能使用默认参数。不能改变运算符的操作数的个数。不能创建新的运算符,只有已有运算符可以被重载。运算符作用于C++内部提供的数据类型时,原来含义保持不变6、什么是模板?答:模板把函数或类要处理的数据类型参数化,表现为参数的多态性。模板用于表达逻辑结
6、构相同,且具体数据元素类型不同的数据对象的通用行为,从而使得程序可以从逻辑功能上抽象,把被处理的对象(数据)类型作为参数传递二)、分析下面的代码,回答问题(每题10分,共40分)1.下面程序的执行结果是什么?为什么?classBC{public:BC(){cout<<〃BC'constructor/z;}~BC(){cout<<〃BC'destructor/z;}};classDC:publicBC{public:DC(){cout<<〃DC‘constructor,/;}~DC(){cout<<〃DC'destructor/z;}};intmain(){DC
7、d;return0;答:执行结果是:BC'constructorDC,constructorDC,destructorBC'destructor创建子类对象首先创建基类对象调用基类构造函数,然后调用自己的构造函数,释放时先析构自己对象最后析构父类对象,有父才有子。2.下面程序的执行结果是什么?为什么?classSample{intn;public:Sample(){};Sample(inti){n=i;};Sample&operator^(Sample):voiddisp(){cout<
此文档下载收益归作者所有