

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 在类的成员函数中,每个成员变量之前都隐含了一个指向当前对象的_B_指针。(A)pointer (B)this (C)that (D)prt2 对定义重载函数的下列要求中,_D_ 是错误的。(A) 要求函数参数的个数不同(B) 要求函数参数中至少有一个类型不同(C) 要求函数参数个数相同时,参数的类型应有所不同(D) 要求函数的返回值不同3 关于虚函数的描述中,_C_ 是正确的。(A) 虚函数是一个static类型的成员函数(B) 虚函数是一个非成员函数(C) 基类中说明了虚函数后,派生类中与其对应的函数可省略虚函数标志virtual(D) 派生类的虚函数与基类中相应的虚函数应具有不同的参数
2、个数和类型4 如果一个类至少有一个纯虚函数,那么就称该类为_A_ 。(A)抽象类 (B)虚基类 (C)派生类 (D)以上都不对5 _D_是一种特殊的成员函数,其函数名同类名。它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。(A)友元函数 (B)析构函数 (C)拷贝构造函数 (D)构造函数6 C+中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过_C_,派生出新的类。(A)友元函数 (B)多态 (C)继承 (D)构造函数7 在定义派生类的对象构造函数的执行顺序为:先执行_A_ ,再执行_B_ ,后执行_C_ 。(A)基类的构造函
3、数 (B)成员对象的构造函数 (C)派生类自身的构造函数8 _A_ 提供了类对外部的接口;_D_ 只能在类的内部作为数据被访问;_B_ 不允许外界访问,但允许派生类的对象访问。(A)公共成员函数 (B)被保护成员 (C)私有成员 (D)私有数据成员9类模板的使用实际上是将类模板实例化成一个具体的_A_。(A)类 (B)对象 (C)函数 (D)模板函数10在类的定义体外定义成员函数时,需要在函数名前加上_B_ ,而在类的外部调用成员函数时,需要_C_引导。(A)类标记 (B)类域标记 (C)类对象 (D)域运算符 11双目运算符重载为成员函数时带_A_个形式参数,重载为友元函数时带_B_个形式参
4、数。 (A)1 (B)2 (C)3 (D)4 12在派生类中重定义基类的某成员函数后,通过派生类的对象或指针访问到的是_B_ ,如果派生类的成员函数需要访问基类中的重定义版本,则可以使用_C_ 引导方式。 (A)基类的重定义版本 (B)派生类的重定义版本 (C)基类名域 (D)派生类名域 13含有一个或以上纯虚函数的类称为_C 。(A) 纯虚类 (B) 具体类 (C) 抽象类 (D)派生类1.(5分)#include iostream.hvoid main( )int a; int & ra=a; ra=7; a=8*ra+6; ra-=2;cout<<”a=”<&l
5、t;a<<”,ra=”<<ra<<endl; 请写出上述程序的运行结果: a= 60 ,ra=60 2.(5分)#include iostream.h class A public: A(int u):age(u), number(age+1) cout << "age:"<< age << ", number:" <<number << endl; protected: int number; int age; ; void main( ) A jenney
6、( 19 ); 请写出上述程序的运行结果: age:19,number:随机数 3. 请用增加拷贝构造函数的方法避免存在的问题,并写出下面程序的运行结果。(5分)(5分) #include iostream.h class NewClass public: NewClass( int i ); NewClass(NewClass &obj); NewClass( ) delete p; friend int GetValue (NewClass obj); private: int * p; ; NewClass: NewClass( int i ) p=new int; if ( !
7、p ) cout << "Allocation error n" return; *p= i; int GetValue (NewClass obj) return *obj.p; void main( ) NewClass x(1), y(2); NewClass x1(x),y1(y); cout<<GetValue (x) <<" " <<GetValue (y)<<endl; cout<<GetValue (x1) <<" " <<
8、GetValue (y1)<<endl; 拷贝构造函数:NewClass:NewClass(NewClass &obj)p=new int; if(!p) cout << "Allocation error n" return; *p=*obj.p; 运行结果:4.(5分)#include <iostream >#include <strstream >using namespace std;const int SIZE=9;class Plot public: Plot(int i,int j) if (i>S
9、IZE) i=SIZE; if (i<0) i=0; if (j>SIZE) j=SIZE; if (j<0) j=0; x=i; y=j; friend ostream& operator<< (ostream& stream, Plot ob); private: int x,y;ostream& operator<< (ostream& stream, Plot ob) for(int j=SIZE; j>=0; j-) stream<< j; if (j= =ob.y) for ( int i=
10、0; i<2*ob.x-1; i+) stream <<" " stream << '* ' if (j= =0) break; stream <<endl; for ( int i=1; i<SIZE+1; i+) stream << " "<<i ; stream << endl; return stream ;void main ( ) Plot a(3, 5); char str200; ostrstream outs ( str, sizeof(
11、str) ); outs << a <<endl; outs << '0' ; cout << " Output using in-RAM formating:n" cout << str;运行结果: 5.(5分) #include <iostream.h> #include <string.h> class Newclass public: Newclass ( ) cout << " Constructing normally."<&
12、lt; endl; Newclass ( char* pName ) strcpy( name, pName ); cout << " Constructing with a name:" << name << endl; Newclass ( ) cout << " Destructing. " << endl; void Display ( ) cout << " Display a name :" << name << endl; p
13、rotected: char name20; ; void main ( ) Newclass obj1; Newclass obj2( "jenney" ); obj1.Display ( ); obj2.Display ( ); 运行结果:随机数三、回答问题(10分)1什么是虚函数?它有什么作用?(5分)答:1.虚函数是被virtual关键字修饰的成员函数(用virtual声明的函数)2.虚函数的作用是用来实现动态绑定,从而实现多态性3用指针调用虚函数的时候,即使是基类类型的指针,也会调用到派生类型的函数2试说明构造函数和析构函数的意义。(5分)答:1构造函数用于完成类
14、和对象初始化,赋值,和申请内存空间。2.析构函数用于完成类和对象删除前收尾工作和申请内存空间释放空间。3.引用及其作用答:引用就是对某个变量的别名,作用是代替某个类和对象成变量,从而实现操作的灵活多样。四、编写程序(35分)1利用c+标准模板库STL中的vector类,建立一个向量控制序列。该序列的元素分别为整数10、20、30、40和50。(25分)编写一个应用程序,完成下列对向量元素的操作:(1) 建立含有上述五个元素的向量控制序列。(2) 编写可删除任意位置元素的函数void Del(int pos); /pos为被删除元素在向量控制序列中的索引位置。并删除索引位置为2的元素。(3) 编
15、写可交换任意位置元素的函数void Change(int pos1,int pos2); /pos1和pos2分别为被交换元素在向量控制序列中的索引位置。并交换索引位置为0和2的元素。(4) 显示向量控制序列。#include <iostream>#include <vector>using namespace std;int a5=10,20,30,40,50;vector<int> intValue;void init()int i;for(i=0;i<5 ;i+)intValue.push_back(ai);cout<<"i
16、ntValue size:"<<intValue.size()<<endl;void Del(int pos)cout<<"已删除索引位置为"<<pos<<"的元素"<<endl;intValue.erase(intValue.begin()+pos);void Change(int pos1,int pos2)cout<<"已交换索引位置为 "<<pos1<<"与 "<<pos2<
17、;<"的元素"<<endl;int temp;temp=intValue.at(pos1);intValue.at(pos1)=intValue.at(pos2);intValue.at(pos2)=temp;void show()int i;cout<<"当前所有元素:"for(i=0;i<intValue.size();i+)cout<<intValue.at(i)<<" "cout<<endl;void main()init();Del(2);show();
18、Change(0,2);show();1 定义复数类Complex,并能实现:Complex c1,c2;cin>>c1>>c2;cout<<c1+c2;编写应用程序测试之。#include <iostream.h>class Complex double real,image;public: Complex(double r, double i) real=r; image=i; /普通构造函数 Complex(); /无参构造函数 friend void InputComplex(Complex &comp); friend void
19、 OutputComplex(Complex comp); friend Complex addComplex(Complex &c1, Complex &c2); /相加 ;void InputComplex(Complex &comp)cin>>comp.real>>comp.image; Complex addComplex(Complex &c1, Complex &c2)Complex c;c.real=c1.real+c2.real;c.image=c1.image+c2.image;return c; void Ou
20、tputComplex(Complex comp) cout <<"("<<comp.real<<","<<comp.image<<")" void main() Complex c1,c2,result; cout<<"qing shuru di yi ge fu shu de shibu he xubo "<<endl; InputComplex(c1); cout<<"qing shuru di er g
21、e fu shu de shibu he xubo "<<endl; InputComplex(c2); result=addComplex(c1,c2); OutputComplex(c1); cout<<"+" OutputComplex(c2); cout<<"=" OutputComplex(result2(10分)给定如下图所示的类关系图,写出应用程序代码。Shape 为形状类,Line为直线类,Point为点类。(各类构造函数,成员函数的形参可自行设计) Shape virtual double
22、length( )=0 /求长度virtual void show ( )=0;/输出对象 LinePoint sp;Point ep;double length( )void show ( ) Pointdouble x; /点的x坐标double y; /点的y坐标void setPoint( );/设置点double getX( );/获取 x坐标double getY( );/获取 y坐标#include <iostream.h>#include<math.h>class Pointprivate: double x; double y;public: Point()Point(double x1,double y1)x=x1;y=y1;Point(Point& a);void setPoint(double x1,dou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粮食仓储害虫防治系统考核试卷
- 模拟士官考试试题及答案
- 技师电工考试试题及答案
- 皮肤医学考试试题及答案
- 延庆教师考试试题及答案
- 2025福建寿宁县粮食购销有限公司招聘4人笔试参考题库附带答案详解
- 2025年地理高考复习 微专题 冰川地貌(讲义)(解析版)
- 《投资基金简介》课件
- 项目经理的选拔
- 新技术在急诊科的应用前景计划
- 铁矿石采购合同三篇
- 电工电子学知到智慧树章节测试课后答案2024年秋湖南大学
- 国开数据库运维网考复习题及答案
- 【MOOC】能源与气候变化应对法-西南政法大学 中国大学慕课MOOC答案
- 《出口单证实务》课件
- 人工智能原理与方法(哈尔滨工程大学)知到智慧树章节答案
- 北京工业大学《环境微生物学》2022-2023学年第一学期期末试卷
- 2024年高考真题-政治(福建卷) 含解析
- DB36T+757-2024香料用樟树培育技术规程
- 酒店服务员合作协议书范文模板
- 血液透析室工作手册目录
评论
0/150
提交评论