版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
金融学院 SchoolofFinance2022C++考试复习学问点汇总一、C++概述(一)进展历史对象的程序设计特色。在当时,面对对象编程还是一个比较的理念,StroustrupCC++语言。1985,C++开头在外面渐渐流行。经过多年的进展,C++已经有了多个版1989C++制定标准。19942月,该委员会出版了第一份非正式草案,1998C++的国际标准。(二)CC++C++CCC++的子集,由于CC++CCC++还是有一些小差异。在C程序中使用,尽管C++包含了全部的C,但明显没有任何C++编译器能编译CCvoidC++可以使用空参数列表。C++中newdeleteCmallocfree。C++CC数。C++中用来做掌握态输入输出的iostreamCstdio库。Csetjmplongjmp函数。二、关键字和变量C++Ctypenamebooldynamic_castmutablenamespacestatic_castusingcatchexplicitnewvirtualoperatorfalseprivatetemplatevolatileconstprotectedthiswchar_t金融学院 SchoolofFinanceconst_castpublicthrowfriendtruereinterpret_casttrybitorxor_eand_eqcomplor_eqnot_eqbitandC++boolwchar_t式中使用了布尔型变量,那么将依据变量值的真假而赐予整型值1或0。要把一个整型变量转换成布尔型变量,假设整型值为0,则其布尔型值为假;反之假设规律测试以转变程序流程。#includeiostream.hintmain{boolflag;flag=true;if(flag)cout<return0;},wchar_t256,charwchar_t16woutcout#includeiostream.hintmain{wchar_twc;wc=”b”;wout<wc=”y”;wout<wc=”e”;金融学院 SchoolofFinancewout<return0;}三、强制类型转换有时候,依据表达式的需要,某个数据需要被当成另外的数据类型来处理,就要使用强制类型转换说明,格式如下:int*iptr=(int*)&table;称为强制转换说明(cast)。强制转换说明告知编译器把表达式转换成指定的类型转换可以避开编译器的警告。longintel=123;shorti=(int)el;floatm=34.56;inti=(int)m;,C++还增加了一种转换方式,比较一下上面和下面这个书写方式的不同:longintel=123;shorti=int(el);floatm=34.56;inti=int(m);使用强制类型转换的最大好处就是:制止编译器对你有意去做的事发出警的选择。通常,是不提倡进展强制类型转换的。除非不行避开,如要调用mallovoid四、标准输入输出流Cscanfprintf来实现的,而C++中是使用类来实现的。金融学院 SchoolofFinance#includeiostream.hmain//C++mainintCvoid{inta;cout<cin>>a;/*输入一个数值*/cout<return0;}cin,cout,endl对象,他们本身并不是C++语言的组成局部。虽然他们已经C++中不供给内在的输入输出运算符,这与其他语言是不同的。输入和输出是通过C++类来实cincoutC++语言的外部实现。明都被编译器认为是注释,这种注释不能换行。C++C注释风格/*……*/。#includeiostream.hintmain{inta;cout<cin>>a;cout类的设计、构造函数和析构函数类的设计、构造函数和析构函数一、类的设计1.类的声明class类名金融学院 SchoolofFinance{private://私有...public://公有...};类的成员就叫它数据成员假设是函数,我们就叫它成员函数。类成员的可见性private和public访问掌握符打算了成员的可见性。由一个访问掌握符设是以后要争论的友元函数。privatepublic变量都作为私有成员消灭,函数都作为公有成员消灭。叫保护成员,以后再说明。4.初始化看下面一个例子:#includeiostream.hclassBox{private:intheight,width,depth;//3金融学院 SchoolofFinancepublic:Box(int,int,int);~Box;intvolume;//成员函数};Box::Box(intht,intwd,intdp){height=ht;width=wd;depth=dp;}Box::~Box{//nothing}intBox::volume{returnheight*width*depth;}intmain{Boxthisbox(3,4,5);//声明一个类对象并初始化cout<return0;}金融学院 SchoolofFinanceprotected是从其他类中派生出来的,可以用{}来初始化。(以后再讲解)5.内联函数Cinline。如:inlineintBox::volume{returnheight*width*depth;}数原型。我们把上面的函数简化一下:#includeiostream.hclassBox{private:intheight,width,depth;public:Box(intht,intwd,intdp){height=ht;width=wd;depth=dp;}~Box;金融学院 SchoolofFinanceintvolume{returnheight*width*depth;}};intmain{Boxthisbox(3,4,5);//声明一个类对象并初始化cout<return0;}二、构造函数什么是构造函数?通俗的讲,在类中,函数名和类名一样的函数称为构造函Box函数就是构造函数。C++允许同名函数,也就允许在一个类中这个构造函数可能会完成一些工作,也可能什么都不做。voidvoid自动类型的类对象离开其作用域时,所站用的内存将释放回系统。看上面的例子,构造函数Box函数承受三个整型擦黑素,并把他们赋值给立方体对象的数据成员。1.使用默认参数的构造函数当在声明类对象时,假设没有指定参数,则使用默认参数来初始化对象。金融学院 SchoolofFinance#includeiostream.hclassBox{private:intheight,width,depth;public:Box(intht=2,intwd=3,intdp=4){height=ht;width=wd;depth=dp;}~Box;intvolume{returnheight*width*depth;}};intmain{Boxthisbox(3,4,5);//初始化Boxdefaulbox;//使用默认参数cout<cout<return0;金融学院 SchoolofFinance}默认构造函数做。假设至少供给一个构造函数,则编译器就不会产生默认构造函数。重载构造函数Box#includeiostream.hclassBox{private:intheight,width,depth;public:Box{//nothing}Box(intht=2,intwd=3,intdp=4){height=ht;width=wd;depth=dp;}~Box;intvolume{金融学院 SchoolofFinancereturnheight*width*depth;}};intmain{Boxthisbox(3,4,5);//初始化Boxotherbox;otherbox=thisbox;cout<return0;}2,3,4。但是这样的程序是不好的。它允许使用初始化过的和没有初始化过的Box较好的方法是,没有参数表的构造函数也把默认值赋值给对象。classBox{intheight,width,depth;public:Box{height=0;width=0;depth=0;}Box(intht,intwd,intdp){金融学院 SchoolofFinanceheight=ht;width=wd;depth=dp;}intvolume{returnheight*width*depth;}};构造函数。classBox{intheight,width,depth;public:Box(intht=0,intwd=0,intdp=0){height=ht;width=wd;depth=dp;}intvolume{returnheight*width*depth;}};三、析构函数金融学院 SchoolofFinance数的名字和类名一样,不过要在前面加上~。对一个类来说,只能允许一个析清理工作,如释放从堆中安排的内存。了内存,则必需在析构函数中释放。C++的内部数据类型遵循隐式类型转换规章。假设某个表达市中使用了一个短整初始化和表达式中。我们也可以为类供给相应的转换规章。了编译器,当依据句法判定需要类型转换时,就调用函数。哪种转换函数取决于转换的方向。一、转换构造函数数据类型,廉价器就会调用转换构造函数进展转换。#includeiostream.h#includetime.h#includestdio.hclassDate{intmo,da,yr;public:Date(time_t);金融学院 SchoolofFinancevoiddisplay;};voidDate::display{charyear[5];if(yr<10)sprintf(year,0%d,yr);elsesprintf(year,%d,yr);cout<}Date::Date(time_tnow){tm*tim=localtime(&now);da=tim->tm_mday;mo=tim->tm_mon+1;yr=tim->tm_year;if(yr>=100)yr-=100;}intmain{time_tnow=time(0);Datedt(now);dt.display;return0;金融学院 SchoolofFinance}time_tDatetime_tlocaltimetmDatetime_tDate二、成员转换函数operator。这样声明一个成员转换函数:operatoraaa;C++类型,包括其他的类。如下来定义成员转换函数;Classname::operatoraaaDate202211#includeiostream.hclassDate{intmo,da,yr;public:Date(intm,intd,inty){mo=m;da=d;yr=y;}operatorint;//声明};Date::operatorint//定义{staticintdys[]={31,28,31,30,31,30,31,31,30,31,30,31};金融学院 SchoolofFinanceintdays=yr-2022;days*=365;days+=(yr-2022)/4;for(inti=0;idays+=dys[i];days+=da;returndays;}intmain{Datenow(12,24,2022);intsince=now;cout<return0;}三、类的转换转换函数来实现两个类对象之间的相互转换。#includeiostream.hclassCustomDate{public:intda,yr;CustomDate(intd=0,inty=0){da=d;yr=y;}voiddisplay{金融学院 SchoolofFinancecout<}};classDate{intmo,da,yr;public:Date(intm=0,intd=0,inty=0){mo=m;da=d;yr=y;}Date(constCustomDate&);//转换构造函数operatorCustomDate;//成员转换函数voiddisplay{cout<}};staticintdys[]={31,28,31,30,31,30,31,31,30,31,30,31};Date::Date(constCustomDate&jd){yr=jd.yr;da=jd.da;for(mo=0;mo<11;mo++)if(da>dys[mo])da-=dys[mo];elsebreak;mo++;}Date::operatorCustomDate金融学院 SchoolofFinance{CustomDatecd(0,yr);for(inti=0;icd.da+=da;returncd;}intmain{Datedt(12,24,3);CustomDatecd;cddt;//调用成员转换函数cd.display;dtcd;//调用转换构造函数dt.display;return0;}数。题的可能性。DateCustomDate型十,可以调用成员转换函数;反之可以调用转换构造函数。CustomDate函数。那样编译器在进展转换时就不知道该调用哪一个函数,从而出错.四、转换函数的调用C++里调用转换函数有三种形式:第一种是隐式转换,例如编译器需要一个DateCustomDate金融学院 SchoolofFinance数。另外两种都是需要在程序代码中明确给出的显式转换。C++强制类型转换是中转换形式:#includeiostream.hclassCustomDate{public:intda,yr;CustomDate(intd=0,inty=0){da=d;yr=y;}voiddisplay{cout<}};classDate{intmo,da,yr;public:Date(intm,intd,inty){mo=m;da=d;yr=y;}operatorCustomDate;};Date::operatorCustomDate金融学院 SchoolofFinance{staticintdys[]={31,28,31,30,31,30,31,31,30,31,30,31};CustomDatecd(0,yr);for(inti=0;icd.da+=da;returncd;}intmain{Datedt(11,17,89);CustomDatecd;cd=dt;cd.display;cd=(CustomDate)dt;cd.display;cd=CustomDate(dt);cd.display;return0;}五、转换发生的情形有几种调用的可能:初始化返回值金融学院 SchoolofFinance表达式语句下面的程序不难理解,就不分析了。#includeiostream.hclassCustomDate{public:intda,yr;CustomDate{}CustomDate(intd,inty){da=d;yr=y;}voiddisplay{cout<}};classDate{intmo,da,yr;public:Date(intm,intd,inty){mo=m;da=d;yr=y;}operatorCustomDate;};Date::operatorCustomDate{staticintdys[]={31,28,31,30,31,30,31,31,30,31,30,31};金融学院 SchoolofFinanceCustomDatecd(0,yr);for(inti=0;icd.da+=da;returncd;}classTester{CustomDatecd;public:explicitTester(CustomDatec){cd=c;}voiddisplay{cd.displ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 舞台导演艺术管理面试题及演出策划含答案
- 媒体平台UI设计师面试题参考
- 销售绩效考核与激励机制
- 书屋课件教学课件
- 书吧课件教学课件
- 节能灯项目可行性研究报告(总投资7000万元)(33亩)
- 餐饮业市场部招聘面试题及答案
- 特殊人群医疗器械的设计与适配
- 网络推广专员面试题集含答案
- 游戏公司物资采购部主管问题集
- 2025贵州锦麟化工有限责任公司第三次招聘7人参考笔试题库及答案解析
- 私人司机合同范本
- 农村房屋安全排查培训
- 2025年河北体育学院竞争性选调工作人员14名(第三批)考试模拟卷附答案解析
- 《资源与运营管理》期末机考资料
- 股权抵押分红协议书
- 《数字化测图》实训指导书
- 电影监制的合同范本
- 2025年高级农艺工考试题及答案
- 铁路工务安全管理存在的问题及对策
- 2025广东茂名市高州市市属国有企业招聘企业人员总及笔试历年参考题库附带答案详解
评论
0/150
提交评论