当前位置:首页 > 《面向对象程序设计C 》期末试卷(A)10-11
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
A D B C E A B D C F
图1 类的继承层次图
图2 多重继承
5、在图2所示的继承层次结构中,如果只想在公共派生类D中保留公共基类A的成员一份,就必须使用关键字virtual把这个公共基类A声明为 。 6、如果一个类包含一个或多个纯虚函数,则该类称为 。 7、从实现的角度来讲,多态性可以划分为两类: 和 。 8、列出C++中的两种代码复用方式: 和 。 9、假定A是一个类名,则该类的复制构造函数的原型声明语句为: 。 10、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句 。
11、后置自减运算符“- -”重载为类的成员函数(设类名为A)的形式为: 。 三、阅读下面3个程序,写出程序运行时输出的结果。(共15分) (注意:此题的答案要写在答题纸上,作答时请写清题号) 1、
#include
p=a; a=b; b=p; }
void exchange(int &a, int &b, int &c) { if( a
int main()
{ int a=11,b=88,c=66;
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
exchange(a, b, c);
cout<<\ return 0; } 2、
#include
A(){cout<<\
virtual ~A(){cout<<\};
class B: public A {public:
B(int i)
{ cout<<\ buf=new char[i]; }
virtual ~B()
{ delete []buf;
cout<<\} private:
char *buf; };
int main()
{ A *a=new B(15);
delete a; return 0; } 3、
#include
Toy(){ strcpy(name, \
Toy(char* _n){ strcpy(name, _n); count++;} ~Toy() { count--;}
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
char* GetName(){ return name; } static int getCount(){ return count; } private:
char name[10]; static int count; };
int Toy::count=0; int main(){
Toy t1,t2(\
cout< Toy t3, t4(\ cout< cout< 四、编程题(25分) (注意:此题的答案要写在答题纸上,作答时请写清题号) 1、(8分)在下面的C++源程序文件main.cpp中,定义了一个用于表示日期的类Date,但类Date的定义并不完整,请按要求完成下列操作,将类Date的定义补充完整。 (1)定义私有数据成员year,month和day分别用于表示年,月,日,它们都是int型的数据。请在①处添加适当的语句。 (2)完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1,day=1,请在②处添加适当的语句。 (3)完成重载构造函数Date(int y, int m, int d)的定义,把数据成员year,month和day分别初始化为参数y,m,d的值,请在③处添加适当的语句。 (4)完成成员函数print的类外定义,使其以“年-月-日”的格式将Date对象的值输出到屏幕上.请在注释请在④处添加适当的语句。 C++源程序文件main.cpp清单如下: //main.cpp -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- #include ② Date(int y,int m,int d) { ③ } void print() const; private: // date members ① }; void Date::print() const { ④ } int main() { Date national_day(1949,10,1); national_day.print(); return 0; } 2、(9分)下列Shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个用以求不同形状的图形面积总和的普通函数。 class Shape {public: virtual double area()=0; }; double total(Shape *s[ ], int n) { double sum=0.0; for(int i=0; i 要求:(1)从Shape类派生圆类(Circle),圆类新增数据成员半径(radius),圆类的成员函数根据题目需要自定。 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
共分享92篇相关文档