C++面向对象程序设计期末复习.doc_第1页
C++面向对象程序设计期末复习.doc_第2页
C++面向对象程序设计期末复习.doc_第3页
C++面向对象程序设计期末复习.doc_第4页
C++面向对象程序设计期末复习.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题型与考点复习一.选择题(20题,共30分)l 作用域运算符的功能l 设置虚基类的目的l 构造函数的特征l 析构函数的说法l 重载函数在调用时选择的依据l 静态成员的特性l 友元l 派生类的描述l 运算符在C+中不能被重载?l 动态联编的描述l 纯虚函数和抽象类的描述l 抽象类的使用l delete删除一个动态对象l new运算符的下列描述l C+与C语言关系的描述l 类定义中,错误的语句 书3.1.1(7)l 自动调用该类构造函数次数l 静态数据成员的描述l 派生类的描述l 派生类的构造函数的初始化列表中,不能包含l 虚基类的声明l 赋值兼容规则l 虚函数l 纯虚函数表述l 抽象类表述l 重载运算符函数l 成员函数重载的运算符、友元函数重载的运算符l 关键字class和typenamel 类模板表述l 重载了运算符 书 7.2节l 语句ofstream f()二.填空题(15空,共30分)l 标准输入输出流对象cin coutl 类中的数据和成员函数l 类都有一个隐含的指针指向:正在调用成员函数的对象 l 非成员函数访问类成员l 虚基类的目的:解决二义性问题l 基类数据成员的初始化l operator+l 运算符函数调用格式l 异常处理的保留字l 异常错误处理函数terminate() 、set_terminate()三.程序的执行、填空(4题,共20分)四.编程题(3小题,共20分)例题一.选择题1.如果表达式+i*k中的“+”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为 A 。A. operator*(i.operator+(),k) B. operator*(operator+(i),k)C. i.operator+().operator*(k) D. k.operator*(operator+(i)2.在下列成对的表达式中,运算符“/”的意义相同的一对是 D 。A.8/3和8.0/3.0 B.8/3.0和8/3 C.8.0/3和8/3 D.8.0/3.0和8.0/33.如果表达式y*x+中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为 C 。A. x.operator+(0).operator*(y) B. operator*(x.operator+(0),y)C. y.operator*(operator+(x,0) 参考书例6.8D. operator*(operator+(x,0),y)4. C+流中重载了运算符,它是一个 D 。A.用于输出操作的成员函数 B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数二.填空题1.面向对象的程序设计的三大特征继承性 、 封装性和多态性。2.类中成员的组成包含哪两个部分 数据成员 、 成员函数 3表达式x=operator-(y,z)还可以表示为 x=y-z 。4.定义Student类的后自增运算符+的重载语法格式为 Student operator +(int); 。5.已知int DBL(int n) return n+n;和long DBL(long n)return n+n;是一个函数模板的两个实例,则该函数模板的定义是template T DBL(T n) return n+n; 6.如果表达式x=y*z中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为 x=y.operator * (z) 7.表达式operator+(x , int)可以表示为 x+ 三.程序的执行、填空1.构造函数与析构函数的调用2.例3.153.第六章习题5当ch=u时的运行结果和当ch=f时的运行结果4.例6.1(代码填空)#includeclass RMBpublic: RMB(unsigned int d, unsigned int c); RMB operator+(RMB&); / 声明运算符函数,重载+,只有一个参数 RMB& operator+(); / 声明运算符函数,重载+,无参数 void display() cout (yuan + jf / 100.0) =100) yuan +; jf -= 100; RMB RMB:operator +(RMB& s) / 定义运算符函数 unsigned int c =jf + s.jf; /相当于unsigned int c = this-jf + s.jf unsigned int d =yuan + s.yuan; RMB result(d,c); / 创建RMB对象result return result;RMB& RMB:operator+() / 定义运算符函数 jf +; if(jf = 100) jf -= 100; yuan+; return *this; / 返回当前对象void main() RMB d1(1, 60); RMB d2(2, 50); RMB d3(0, 0); d3 = d1 + d2; /调用重载运算符函数operator +,使RMB类的两个对象可以相加 /相当于 d3=d1.operator+(d2) +d3; /调用重载运算符函数operator +,使RMB类的对象d3可以自增 /相当于d3.operator +(); d3.display();5.例6.3(代码填空)#includeclass RMBpublic: RMB(unsigned int d, unsigned int c); friend RMB operator +(RMB&, RMB&); / 声明友元运算符函数 friend RMB& operator +(RMB&); / 声明友元运算符函数 void display() cout (yuan + jf / 100.0) =100 ) / 确保角分值小于100 yuan +; jf -= 100; RMB operator+(RMB& s1, RMB& s2) / 定义友元运算符函数 unsigned int jf = s1.jf + s2.jf; unsigned int yuan = s1.yuan + s2.yuan; RMB result( yuan, jf ); return result;RMB& operator +(RMB& s) s.jf +; if(s.jf = 100) s.jf -= 100; s.yuan+; return s;void main() RMB d1(1, 60); RMB d2(2, 50); RMB d3(0, 0); d3 = d1 + d2; /d3=operator+(d1,d2); +d3; /operator+(d3); d3.display();6.例7.14(代码填空)#include#include / (1)包含头文件 文件输入输出#include#includeusing namespace std;int main( ) ifstream ifile; / (2)建立文件流对象 ofstream ofile; ifile.open(d:fileIn.txt); / (3) 打开D盘根目录下的fileIn.txt文件 ofile.open(e:fileOut.txt); if(ifile.fail() | ofile.fail() / 测试打开操作是否成功 cerr open file failn; return EXIT_FAILURE; / 返回值EXIT_FAILURE(在cstdlib库中定义)/ 用于向操作系统报告终止不成功 char ch; ch = ifile.get(); / (4) 进行读写操作 while(!ifile.eof( ) ofile.put(ch); / 将字符输出到输出文件流对象中 ch = ifile.get( ); / 从输入文件对象流中读取一个字符 ifile.close(); / (5) 关闭文件 ofile.close(); return 0;四.编程题1.创建一个雇员类,该类中数据成员有姓名、家庭成地址和邮政编码等。其功能有修改姓名、显示数据信息。要求其功能函数的原型放在类定义体中。2.定义一个复数类,其属性为数据的实部和虚部,要求定义和使用构造函数与拷贝构造函数,并定义成员函数显示复数的值。3.定义一个抽象类shape,在此基础上派生出rectangle类和circle类,二者都由getarea()函数计算对象的面积,getperim()函数计算对象的周长。4.下图所示为各个类的继承关系,分别定义交通工具类Vehicle、船类Boat、汽车类Automobile和跑车类SportsCar,其中Vehicle类为抽象类,定义虚函数display用来显示各类的相关消息,编写主函数对其加以测试(要求体现多态性)。(图略)5.编程将磁盘文件(d:myabc.txt)内容输出到屏幕上。#include #include #include void main()ifstream myf(d:myabc.txt,ios:nocreate);/如果该文件不存在,则结果出现file no exist!if (myf.fail() / 如果要检查文件是否打开,则须判断成员函数fail( ):coutfile no exist!txt;while (!myf.eof()/!myf.eof()条件成立,则myf.eof()为0,即还没读取到流中最后的文件结束符;否则读取到最后的文件结束符是返回非0值。couttxttxt;6.编程由用户输入任意一些字符串并按行保存到磁盘文件(d:myabc.txt)中。#include #include #include void main()ofstream myf(d:myabc.txt); / 默认io

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论