文档详情

C++面向对象程序设计期末复习.doc

发布:2016-12-13约5.53千字共10页下载文档
文本预览下载声明
题型与考点复习 一.选择题(20题,共30分) 作用域运算符的功能 设置虚基类的目的 构造函数的特征 析构函数的说法 重载函数在调用时选择的依据 静态成员的特性 友元 派生类的描述 运算符在C++中不能被重载? 动态联编的描述 纯虚函数和抽象类的描述 抽象类的使用 delete删除一个动态对象 new运算符的下列描述 C++与C语言关系的描述 类定义中,错误的语句 书3.1.1(7) 自动调用该类构造函数次数 静态数据成员的描述 派生类的描述 派生类的构造函数的初始化列表中,不能包含 虚基类的声明 赋值兼容规则 虚函数 纯虚函数表述 抽象类表述 重载运算符函数 成员函数重载的运算符、友元函数重载的运算符 关键字class和typename 类模板表述 重载了运算符 书 7.2节 语句ofstream f() 二.填空题(15空,共30分) 标准输入输出流对象cin cout 类中的数据和成员函数 类都有一个隐含的指针指向:正在调用成员函数的对象 非成员函数访问类成员 虚基类的目的:解决二义性问题 基类数据成员的初始化 operator++ 运算符函数调用格式 异常处理的保留字 异常错误处理函数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/3 3.如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为 C 。 A. x.operator++(0).operator*(y) B. operator*(x.operator++(0),y) C. y.operator*(operator++(x,0) 参考书例6.8 D. 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 typename T T DBL(T n) {return n+n;} 6.如果表达式x=y*z中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为 x=y.operator * (z) 7.表达式operator++(x , int)可以表示为 x++ 三.程序的执行、填空 1.构造函数与析构函数的调用 2.例3.15 3.第六章习题5当ch==’u’时的运行结果和当ch==’f’时的运行结果 4.例6.1(代码填空) #includeiostream.h class RMB{ public: RMB(unsigned int d, unsigned int c); RMB operator+(RMB); // 声明运算符函数,重载+,只有一个参数 RMB operator++(); // 声明运算符函数,重载++,无参数 void display(){ cout (yuan + jf / 100.0) endl; } protected: unsigned int yuan; unsigned int jf; }; RMB::RMB(unsigned int d, unsigned
显示全部
相似文档