




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c 语法总结范文 c+语法总结(转)收藏1.I/O流的常用控制符dec置基数为10hex置基数为16oct置基数为8setfill(c)设填充字符为C setprecision(n)设显示小数精度为n位setw(n)设域宽为N个字符setiosflags(ios:fixed)固定的符点显示setiosflags(ios:scientific)指数表示setiosflags(ios:left)左对齐setiosflags(ios:right)右对齐setiosflags(ios:skipws)忽略前导空白setiosflags(ios:uppercase)16进制数大写输出setiosflags(ios:lowercase)6进制数小写输出setiosflags(ios:showpoint)显示小数点setiosflags(ios:showpos)正数前面加上正号2.头文件:*iostream.h*iomanip.h*stdlib.h*cout/cin流的控制符exit (0)3.指针的几种类型:int(*p)();p为指向函数的指针变量,该函数带回一个整形值int*p();p为带回一个指针的函数,该指针指向整形数据int(*)np为一个指向一个指针变量的指针变量,被指向的指针变量指向一个含n个整形数据的一维数组4.构造函数和析构函数特点及其区别:a.构造函数可以有任意个形参,还可以重载(多个参数个数不同的函数);但析构函数不能有形参,因为是系统自动调用的.b.构造函数不可以任意调用,只准系统调用;而析构函数不仅系统调用,也可以任意调用.5.构造函数和析构函数什么时候自动运行?(例61)构造函数:一般在定义类对象时自动运行.析构函数:如果一个函数中定义了一个对象,则在这个函数运行结束时就执行一次;当一个对象是使用NEW运算符被动态创建的,在使用DELETE运算符释放它时,DELETE将会自动调用析构函数.拷贝初始化构造函数:当用tpoint N(M);语句时调用一次;当对象作为实参向形参传递时,即对形参初始化时执行一次;当遇到M=return(N);语句,即对M进行初始化时调用一次;6.this指针用法:例63中,当程序执行语句list elem(i);时,系统对this指针进行了如下的缺省赋值:this=&list;赋值成员函数举例(此例在例63基础上):void Assign(linear_list&);/说明语句;void linear_list:Assign(linear_list&p)if(&p=this)return;nmax=p.nmax;nelem=p.nelem;list=new intnmax;for(int i=0;i 这里保护成员同于私有成员。 b.基类成员对派生类的可见性公有成员和保护成员可见,而私有成员不可见。 这里保护成员同于公有成员。 c.基类成员对派生类对象的可见性公有成员可见,其他成员不可见。 所以,在公有继承时,派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保护成员。 这里,一定要区分清楚派生类的对象和派生类中的成员函数对基类的访问是不同的。 2)对于私有继承方式a.基类成员对其对象的可见性:公有成员可见,其他不可见。 b.基类成员对派生类的可见性公有成员和保护成员可见,而私有成员不可见c.基类成员对派生类对象的可见性所有成员都是不可见的。 所以,在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。 3)对于保护继承方式与私有继承方式相同,两者的区别仅在于对派生类的成员而言,对基类成员有不同的可见性。 B:帮助理解1)公有继承时,水平访问和垂直访问对基类中的公有成员不受限制。 2)私有继承时,水平访问和垂直访问对基类中的公有成员也不能访问。 3)保护继承时,对于垂直访问同于公有继承,对于水平访问同于私有继承。 4)对于基类中的私有成员,只能被基类中的成员函数和友元函数访问,不能被其他的函数访问。 C:帮助理解在公有继承时,派生类的成员函数可访问基类中的公有成员和保护成员;派生类的对象仅可访问基类中的公有成员。 9.派生类的构造函数和析构函数派构1.一般格式派生类名(派生类构造函数总参数表):基类构造函数(参数表1),子对象名(参数表2)派生类中数据成员初始化;2.调用顺序a.基类的构造函数。 b.子对象类的构造函数(如果有的话).c.派生类构造函数。 10.多继承是指派生类具有多个基类。 多继承的构造函数派生类名(总参数表)基类名1(参数表1),基类名2(参数表2),.派生类构造函数体11.虚基类如果基类被声明为虚基类,则重复继承的基类在派生磁对象实例中只好存储一个副本,否则,将出现多个基类成员副本。 虚基类说明格式如下virtualclass B:virtual publicA注意a.如果一个派生类有直接或间接的虚基类,那么派生类的构造函数的成员初始列表中必须列出对虚基类的调用,如果未被列出,则表示使用该基类的缺省构造函数来初始化派生类对象中的虚基类子对象。 b.虚基类的构造函数先于非虚基类的构造函数调用。 c.只有建立对象的那么个派生类的构造函数调用虚基类的构造函数,而该派生类的基类中所列出的对这个虚基类的构造函数的调用在执行中被忽略。 12.运算符重载operator函数用法(不能有下列字符:,.,*,?:)1.一般int class_name:operator(形参列表)(例92)2.增量减量运算符:(例93,94,95,96)a.将一个增量运算符重载为前置的成员函数:int class_name:operator+();b.将一个增量运算符重载为后置的成员函数int classname:operator+(int);c.将一个增量运算符重载为前置的友元函数int operator+(class_name&);d.将一个增量运算符重载为前置的友元函数int operator+(class_name&,int);e.下标运算符int class_name:operator(形参)/只能是非静态成员函数f.函数调用运算符int class_name:operator()(形参表)/只能是非静态函数,且不可以带有缺省的参数g.成员选择运算符class_name$/*class_name:operator();h.new delete运算符void*class_name:operator new(siz_t,);void*class_name:operator delete(void*,);new delete只能被重载为类的成员函数,不能是友元。 而且无论是否使用关键字static进行修饰,重载了的new和delete均为类的表态成员函数。 对于typedef unsignedsize_t;在头文件alloc.h,mem.h,stddef.h,stdio.h,stdlib.h均说明;i.友元函数可以是一个类的非静态函数,也可以是类的友元函数。 friend plexoperator+(plex&,plex&);;以下五种运算符不说明成友元运算符=,(),type;j.转换函数class_name:operator type();/type是任何一个合法的C+的类型名(包括基本数据类型和导出数据类型)以及由关键字const和volatile引出的表达示。 )/不带任何参数,也无返回值类型,总是返回type的值。 只能是类的成员函数,不能说明为友元运算符。 k.类的赋值运算与运算符重载person&person:operator=(person&p)dele Name;Name=new charstrlen(p.Name)+1;strcpy(Name,p.Name);Age=p.Age;Sex=p.Sex;return*this;典型例题。 当用系统自带对象赋值的函数,如果对象里有如*Name型的,则赋值后会使两个指针同时指向一个成员元素的地址,当调用析构函数释放时,会释放两次,多释放一次,而产生错误,这个典型例题是用于把一个成员元素复制到另一个对象中,不是单纯移动指针,当调用析构函数时,会释放两次。 l.重载函数系统仅对形参加以区别。 13.虚函数一般情况下,指向一个对象的指针,不允许指向另一个对象,但指向基类对象的指针可以指向它的派生类,并可以访问派生类中原基类成员。 如果一个函数一旦说明为虚函数,则无论说明它的类被继承了多少层,在每一层中该函数都保持该virturl特性。 且可以在派生类中对该函数省略virtual.虚函数必须是类的一个成员函数,不能是友元,但它可以是另一个类的友元。 虚函数不能是一个静态成员。 设定绑定方式,使程序具有灵活性,但执行效率低,占用内存多.14.抽象类纯虚函数纯虚函数的一般形式为virturl类型名(参数表)=0;抽象类不能申请对象。 15.类属结构1.函数模板template返回值类型函数名(模板函数形参表)函数体;example:templatevoid swap(T&.x,T&.y)T t;t=x;x=y;y=t;2.重载函数模板调用用次序1)寻找一个完全匹配的函数,找到,调用之。 2)寻找一个函数模板,将其实例化产生一个匹配的模板函数,找到,调用之。 3)寻找重载函数中有无通过类型转换后产生参数匹配的函数,若有,调用之。 3.类模板templateclass类模板名类体;example:tempplateclass stackprivate:T*date;int top;public:isempty();template.16.类模板的友元a.一般的类模板友元函数。 b.封闭型的类模板友元函数。 当用类型参数将类模板实例化为某个具体的模板类时,该类模板所包含的友元函数也将随之实例化。 c.开放型的类模板友元函数。 例一百二十一。 17.C+的I/O流库1.I/O标准流类c+名字|设备|C中的名字|默认的含义cin|键盘|stdin|标准输入cout|屏幕|stdout|标准输出cerr|屏幕|stderr|标准错误clog|打印机|stdprn|打印机2。 键盘输入cinabc;/Ctrl+z终止cin.get(char&ch)/从输入流获取一个字符,不忽略空格Ctrl+z终止cout.put(ch)/输出一个字符EOF/其值为1,相当于终止符cin.geline(char*buf,int limit,Deline=n)/buf为一个指针或数组,limit为字符个数,Deline为读取字符指定结束符。 作用从键盘读入一串字符。 结束用Ctrl+z.cin.gcount()/返回getline()刚刚读过的字符个数cin.read(char*buf,int size)/读入指定数目的字符cout.write(const char*str,int n)/cout.write(string,strlen(string);则输出全部字符。 cin.peek()/返回输入流的下一个字符,但是不提取它。 long(a)/a可以是指针地址,作用,强制转换为十进制数。 (void*)/ex:char str=abcde;cout 18.输入符,提取符重载例154155例题19.磁盘文件的输入。 头文件#includefstream.h/例题从156开始1.打开文件a.fstream outfile;outfile.open(f1.txt,ios:out);/其中fstream为系统对文件专用操作类b.ofstream ostream(f1.txt);ofstream ostrm;ostrm.open(f1.txt);/表示打开某个写文件c.ifstream istrm(f2.txt);ifstream istrm;istrm.open(f2.txt);/表示打开某个读文件方式名|用途in|以输入方式打开文件out|以输出方式打开文件app|以输出追加方式打开文件ate|文件打开时,文件指针位于文件尾trunc|如果文件存在,将其长度截断为零,并清除所有内容,如果文件不存在,则创建新文件binarg|以二进制方式打开文件,缺省时为文本方式nocreate|打开一个已有文件,如该文件不存在,则打开失败noreplace|如果文件存在,除非设置ios:ate或ios:app,否则打开失败ios:in|ios:out|以读和写的方式打开文件ios:out|ios:binary|以二进制方式打开文件ios:in|ios:binary|以二进制方式打开文件2.关闭文件:fstream outfile;outfile.close();3.打开文件失败退出程序用函数abort();退出,在头文件 cin.clear();/原型void ios:clear(int=0);其用途是将错误状态的标志字中错误标志位清除,重新判断输入。 cin.ignor(80,ch);/如果ch=n,一般表示忽略一行,重新到下一行去输入istream&istream:ignore(int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省莆田市仙游第一中学2025-2026学年高二上学期开学质量检测政治试题(含解析)
- 2025年光伏行业投资策略分析报告:长风破浪会有时策施暖霭起新程
- 幸福航空安全培训课件
- 2025年公募QDII 香港互认基金投资策略分析报告:多管齐下机遇全球 资产
- 巡察宣传课件
- 岩土工程勘察安全培训课件
- 输液速度课件
- 电商平台跨境电商用户权益保护合同
- 互联网医疗平台股权投资与医疗服务协议
- 城市综合体商铺代理销售与商业品牌组合合同
- 老年心房颤动诊治中国专家共识2024版
- 2025-2030全球及中国自动制动系统行业市场现状供需分析及投资评估规划分析研究报告
- 面馆员工制度管理制度
- 临床用血知识培训课件
- KPI绩效考核管理办法
- 2024年中小学学校传染病疫情及突发公共卫生事件报告制度
- 本科毕业论文完整范文(满足查重要求)城市社区部分居民失业的现状、问题与对策研究
- 生物安全管理体系文件
- 天然气开采流程
- 2025年高校教师资格证考试题库(带答案能力提升)
- 2025年光大金瓯资产管理有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论