天津理工大学C++期末考试.docx
- 文档编号:1319943
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:57
- 大小:651.96KB
天津理工大学C++期末考试.docx
《天津理工大学C++期末考试.docx》由会员分享,可在线阅读,更多相关《天津理工大学C++期末考试.docx(57页珍藏版)》请在冰豆网上搜索。
天津理工大学C++期末考试
一、明确的概念:
(1)理解类和对象的概念;(具体见附一)
类是抽象的对象是具体的例如:
你、我、他都是人那么你、我、他就是对象人就是类
(2)掌握类与对象的定义方法;
类的定义:
class类名{…/*定义这个类*/};//(别忘了最后的分号)对象的定义:
类名对象名(参数);
(3)理解类的成员的访问控制的含义,公有和私有成员的区别;
public:
//访问属性为公有通过外部直接访问即:
对象名•成员名或成员函数
private:
//访问属性为私有不能通过外部直接访问(不声明访问属性时系统默认为私有)当出现对象名成员(私有)时编译器报错
protected:
//访问属性为保护与private类似但protected属性的成员可以继承private不能继承
(4)掌握构造函数和析构函数的含义与作用、定义方式和实现;
构造函数:
为数据成员开辟存储空间
函数名必须与类名相同之前绝对不许说明返回值类型void也不行
构造函数不能由用户调用即:
对象名•构造函数名(参数)是错误的
构造函数是随着对象的声明而调用的
例如:
classStudent{Student(){cout<<"Hello."< Intmain(void)// {cout<<"Hello丿< StudentA;"/ 运行结果: Hello...//<-这个Hello是主函数中的 Hello"//<-是声明A对象时调用的构造函数构造函数中的Hello 析构函数功能与构造函数相反注意调用时间和顺序(看书) 、练习项目 输入下列程序,按要求进行实验,并记录实验的结果。 #inelude classCoordinate { public: Coordinate(intx1,inty1){x=x1;y=y1;} Coordinate(Coordinate&p); ~Coordinate(){cout<<"Destructoriscalled."< intx,y; }; Coordinate: : Coordinate(Coordinate、&p){〃拷贝构造函数 x=p.x;y=p.y; cout<<"Copyinitianizationconstructori} P89) led."< intmain(){ Coordinatep1(3,4); Coordinatep2(p1); Coordinatep3=p2; cout<<"p3=("< +调用构造函数 调用拷贝构造函数(见书 运行结果: return0; } 卜程序结束时调用析构函数注意析构函数; 的调用顺序从上至下依此为p3p2p1的! 析构函数[ Copyinitianizationconstructoriscalled. Copyinitianizationconstructoriscalled.p3=(3,4) i 11Destructoriscalled. (1)记录程序的运行结果 Destructoriscalled. (2)将Coordinate类中带有两个参数的构造函数进行修改, 在函数体增加如下语句: cout<<"Constructoriscalled.” 重新记录程序的运行结果,并解释输出结果。 Destructoriscalled. I IIPressanykeytocontinue (3)按下列要求进行测试。 在主函数体,添加如下语句: Coordinatep4;错误原因: 构造函数没有参数构造函数为Coordinate: : Coordinate(int,int) Coordinatep5 (2);错误原因: 参数数量不对 2. 根据注释语句的提示实现类Date的成员函数,并将完整的程序编译、连接成功以保证程序能够正确运行。 #include classDate{ public: voidprintDate();//显示日期 voidsetDay(int);//设置日的值 voidsetMonth(int);//设置月的值 voidsetYear(int);//设置年的值 分析: 1•题目中Date类的数据成员为day,month,year且均为整型访问属性为私有主函数中声明了testDay对象 private: intday,month,year; }; intmain(){ DatetestDay;testDay.setDay(5);testDay.setMonth(10);testDay.setYear(2010);testDay.printDate(); }; voidDate: : setDay(intd){day=d;} voidDate: : setMonth(intm){month=m;} voidDate: : setYear(inty){year=y;} voidDate: : printDate(){cout< 3.下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测 试 该类设计的正确性。 #include classcounter { public: counter(intnumber=0)//构造函数{ //给value原值加1 //给value原值减1//取得计数器值//显示计数 //数据成员 value=number;}voidincrement();voiddecrement();intgetvalue();intprint(); private: intvalue; }; voidcounter: : increment(){value++;cout<<"Thecounterhasincreasedby1"< : decrement(){value--;cout<<"Thecounterhasdecreasedby1"< : getvalue(){returnvalue;} intcounter: : print(){cout<<"\nDisplay: "< intmain(){cout<<"Pleaseinputoriginnumber: ";//定义counter类的几个对象并调用有关成员函数inta; cin>>a; counterc(a);//输入a并将a作为参数通过构造函数为对象中的value赋值 c.increment(); c.print();//题目要求验证所以使用输出函数一次验证value的值 c.decrement(); c.print(); return0; } 4. 定义一个类CisName,要求该类设计如下: (1)该类有两个整型数据成员x和y; (2)为该类重载三个不同的构造函数: 分别为无参数、带一个参数和带两个参数的构造函数,要求在构造函数中输出必要的信息以示区别; (3)设计2个成员函数用来读取数据成员x和y; (4)设计2个成员函数用来设置数据成员x和y; (5)设计1个成员函数用来在屏幕上打印输出数据成员x和y; (6)在main()函数中用三个不同的构造函数创建3个对象,并使用所有的成员函数对这些对象进行必要的操作。 classClsName { public: inta,b; ClsName(inta,intb){cout<<"Constructbytwonumbers."< (2)中要求的重载构造函数 ClsName(inta){cout<<"Constructby1number."< ClsName(void){cout<<"Constructwithoutanumber."< intgetx(){returnx;}因为x,y的访问属性为私有,不能由主函数直接访问所以会设置读取函数专门负责返 回相应的值 重载: 函数名相同,参数的类型不同或者个数不同、或者都不同。 即根据带入参数 的类型、数量的不同,来实现不同的功能 intgety(){returny;} voidsetx(){cout<<"ChangeX: ";cin>>x;} voidsety(){cout<<"ChangeY: ";cin>>y;} voidprint(){cout<<"X="< intx,y; (1)中要求的两个整型数据成员 }; intmain() { inta,b; cout<<"Test1: lnputwith2numbers,nowpleaseinputtwonumbers: "< ClsNamet3; t3.print(); t3.setx();t3.sety(); t3.print(); return0; 5. 建立类cylinder,包括两个数据成员radius和height,分别表示圆柱体的半径和高度,cylinder类的构造函数被传递了两个double值来初始化这两个成员;定义成员函数area()和volume用来求圆柱体的表面积和体积,定义成员函 数print()打印cylinder类的相关信息。 最后,在主函数中对cylinder类的设计进行测试。 这题很简单没啥说的 #include classcylinder { public: voidset(doubler,doubleh){radius=r,height=h;} doublearea(){return(radius*3.14);} doublevolume(){return(height*area());} voidprint(){cout<<"Area="< private: doubleradius,height; }; intmain() { inta,b; cylinderv; cout<<"Radius="; cin>>a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津 理工大学 C+ 期末考试