




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章一、单项选择题1.数据成员 成员函数; 2.类名 析构函数不允许有返回类型和参数(可显示地说明参数为void) 一个类有1个析构函数; 3.fun:fun(fun &) 和 fun:fun(const fun &);二、单项选择题 1.C; class定义类的关键字,讲数据域函数封装起来2.C; 面向对象的特征:多态性、抽象性、封装性、继承性等3.没又答案,应该是A:A(void) 或 A:A(),参考课本P824.B: 构造函数、复制构造函数、析构函数都是类的成员函数5.C; 不能指定任何返回类型,即使是void也不可6.C; 析构函数不能有返回类型,也不能制定参数。7.D; 参考课本P79, 不能说调用new,应该说new分配了内存空间三、改错题 1.找出以下类定义中的错误,并说明错在何处?class baseint *p;/int m; 加上这个语句就正确了public:base(int a)p=&a;int Getx()return m; /错误,这里使用的m在类的数据成员中未定义 /C+类定义中要遵循“先定义后使用”的原则base()delete p; 2.找出下面程序中的错误,并说明错在何处。class Pointint x;public:void init(int a) Setx(a); int Getx() return x; int Setx(int a) x = a; /错误,Setx()只是赋值,返回值类型应为void,不是int;void main()Point A; /应该加上这句,简历对象AA.init(24,56); /错误,init函数只能有1个参数cout A.x= A.Getx() endl; 四、完成程序题 1.下面是一个类的测试程序,设计出能使用如下测试程序的类: #include using namespace std;/设计的类如下class base private: /私有数据成员int x;int y;public: /公有成员函数void init(int a, int b)x = a;y = b;void print()int r;r = 2*x - y;cout 2* x - y = r;cout endl;void main()base a;a.init(68,55);a.print();运行结果:2.完成下面类中成员函数的定义。class Pointprivate:int m, n;public:Point(int, int); /带两个参数的构造函数原型声明Point(Point&); /带一个引用参数的复制构造函数原型声明;Point : Point(int a, int b)m = a;n = b;Point : Point(Point& t)m = t.m;n = t.n;五、程序分析题 1.给出下面程序的输出结果。 #include using namespace std;class baseprivate:int a, b;public:base()cout Destory. a , b endl;base(int a, int b):b(b),a(a)cout 初始化. a , b endl;答:没有输出结果,因为只是定义了类,没有产生类对象。如果加main函数,并在main中产生一个类对象,则有输出结果void main()base a(11, 22);输出:第四章二、单项选择题 6.C; 析构函数不能有返回类型,也不能制定参数。7.D; 参考课本P79, 不能说调用new,应该说new分配了内存空间三、改错题 1.找出以下类定义中的错误,并说明错在何处?class baseint *p;/int m; 加上这个语句就正确了public:base(int a)p=&a;int Getx()return m; /错误,这里使用的m在类的数据成员中未定义 /C+类定义中要遵循“先定义后使用”的原则base()delete p; 2.找出下面程序中的错误,并说明错在何处。class Pointint x;public:void init(int a) Setx(a); int Getx() return x; int Setx(int a) x = a; /错误,Setx()只是赋值,返回值类型应为void,不是int;void main()Point A; /应该加上这句,简历对象AA.init(24,56); /错误,init函数只能有1个参数cout A.x= A.Getx() endl; 四、完成程序题 1.下面是一个类的测试程序,设计出能使用如下测试程序的类: #include using namespace std;/设计的类如下class base private: /私有数据成员int x;int y;public: /公有成员函数void init(int a, int b)x = a;y = b;void print()int r;r = 2*x - y;cout 2* x - y = r;cout endl;void main()base a;a.init(68,55);a.print();运行结果:2.完成下面类中成员函数的定义。class Pointprivate:int m, n;public:Point(int, int); /带两个参数的构造函数原型声明Point(Point&); /带一个引用参数的复制构造函数原型声明;Point : Point(int a, int b)m = a;n = b;Point : Point(Point& t)m = t.m;n = t.n;五、程序分析题 1.给出下面程序的输出结果。 #include using namespace std;class baseprivate:int a, b;public:base()cout Destory. a , b endl;base(int a, int b):b(b),a(a)cout 初始化. a , b endl;答:没有输出结果,因为只是定义了类,没有产生类对象。如果加main函数,并在main中产生一个类对象,则有输出结果void main()base a(11, 22);输出:2.分析下面程序的输出结果。 #include using namespace std;class baseprivate:int a, b;public:base()cout Destory. a , b endl;base(int a, int b):b(b),a(a)cout 初始化. a , b endl;答:没有输出结果,因为只是定义了类,没有产生类对象。如果加main函数,并在main中产生一个类对象,则有输出结果void main()base a(11, 22);输出结果:六、编程题 1.设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点。并可以输出4个坐标值和面积。使用测试程序验证程序。#include using namespace std;class Point/定义点类Pointprivate:double x, y;/每个点有两个私有数据成员public:void Setxy(double a, double b) /Setxy()函数用于给x、y赋值,从而实现更改x、y的值x = a;y = b;double Getx() return x; /得到横坐标x的值double Gety() return y; /得到纵坐标y的值Point(double a=0, double b=0) /带两个默认参数的构造函数,实现对x、y的初始化x = a;y = b;class Rectangle /定义矩形类private:Point P1,P2; /使用Point类的两个坐标点作为对角顶点public:void SetPeak(Point& A1, Point& A2) /SetPeak()函数用于给两个顶点P1、P2赋值,从而实现更改顶点的值P1 = A1;P2 = A2;void PrintPeak() /打印输出四个顶点的坐标Point P3(P1.Getx(), P2.Gety();/计算第3个顶点的坐标Point P4(P2.Getx(), P1.Gety();/计算第4个顶点的坐标cout 顶点1坐标:( P1.Getx() , P1.Gety() ) endl;cout 顶点2坐标:( P2.Getx() , P2.Gety() ) endl;cout 顶点3坐标:( P3.Getx() , P3.Gety() ) endl;cout 顶点4坐标:( P4.Getx() , P4.Gety() ) 0) ? area : -area; /保证面积位正值cout 矩形面积 = area endl;Rectangle(Point A1, Point A2) /矩形类的构造函数P1 = A1;P2 = A2;void main() /主函数Point P1(2.3, 10);/产生点对象 P1Point P2(1.5, 8.6);/产生点对象 P2Rectangle rect(P1,P2); /产生矩形对象 rectrect.PrintPeak();/调用函数PrintPeak()输出四个顶点rect.PrintArea();/调用函数PrintArea()输出矩形面积cout endl;/换行P1.Setxy(5.5, 11.2);/调用点类的成员函数Setxy()重新给P1赋值P2.Setxy(0.5, 5.5);/调用点类的成员函数Setxy()重新给P2赋值rect.SetPeak(P1, P2);/使用新的顶点对矩形的对角顶点初始化rect.PrintPeak();/再调用函数PrintPeak()输出四个顶点rect.PrintArea();/再调用函数PrintArea()输出矩形面积输出结果:2.使用内联函数设计一个类,用来表示直角坐标系中的任意一条直线并输出它的属性。#include using namespace std;class Line /定义直线类 两点确定一直线private:double x1, y1, x2, y2; /经过两个点,两个坐标四个值public:void SetPoint(double m1, double n1, double m2, double n2); /SetLine()函数用于给经过的两个点赋值void PrintPoint(); /输出直线经过的两个点(两点可确定一直线)void PrintSlope(); /输出直线的斜率Line(double=0, double=0, double=0, double=0); /带默认参数的构造函数;inline void Line:SetPoint(double m1, double n1, double m2, double n2) /SetPoint()函数用于给经过的两个点赋值x1 = m1;y1 = n1;x2 = m2;y2 = n2;inline void Line:PrintPoint() /输出直线经过的两个点(两点可确定一直线)cout 直线经过点1的坐标:( x1 , y1 ) endl;cout 直线经过点2的坐标:( x2 , y2 ) endl;inline void Line:PrintSlope() /输出直线的斜率double slope;slope = 1.0 * (y2 - y1) / (x2 - x1); /乘以1.0是为了防止分母为整数时输出错误值cout 直线的斜率 k = slope endl;inline Line:Line(double m1, double n1, double m2, double n2) /使用默认参数的构造函数,用于初始化坐标值x1 = m1;y1 = n1;x2 = m2;y2 = n2;void main() /主函数Line L1(1, 2, 2.5, 3.8);/产生直线类对象L1并初始化L1.PrintPoint();/输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三百日誓师课件
- 高一化学氯气课件flash
- 离婚协议档案查询及信息保密服务合同
- 高科技企业研发成果转化连带责任担保协议
- 离婚协议书范本:夫妻共同财产分割及子女抚养权归属
- 离婚协议书模板:婚姻终止、财产分割及子女抚养细则
- 智能家居产品售后维修追加服务协议合同范本
- 二手车买卖合同范本含车辆税费及过户流程
- 髂静脉血栓课件
- 喷射式发动机空气滤清器更换方案
- 幼儿园小班语言大老鼠找小老鼠课件
- CJJ166-2011 城市桥梁抗震设计规范
- 化肥欠款协议模板
- 小红书口碑对旅游者目的地决策的影响研究
- 查缉酒驾实战培训课件
- “对校园欺凌说不”主题班会课件
- PLC电气控制设计污水处理系统样本
- 计算机组成原理-鲲鹏
- 青春筑梦强国有我
- 新生儿感染性休克的个案护理课件
- 3d玻璃的热弯工艺
评论
0/150
提交评论