下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++语法规则积累C++bit,但是如果连续定义多个布尔类型时,编译器可能会多个布尔类型定义在一起。true1false0将一个其他类型的数据赋给布尔类型变量:C++0true(1),0false(0)。三木运算符?::将一个三目运算符作为左值:(a>b?a:b)=3CC++中支持(三目元算符返回变量)。但是如果可能的返回值有一个是常量值,那么它就不能作为左值使用,如(a>b?1:b)3引用:C++中的引用:一个已经定义的变量的别名。Typevar,Type&namevar;const修饰引用:const使引用拥有只读属性,但是变量本身还是原来的属性。当使用常量对const引用进行初始化时,编译器会给常量分配空间,并将引用名命名为这段空间的别名。不能给普通引用赋值为常量,但是可以给常引用赋值为常量。此时常引用是只读的,除了在定义时,不能给它赋值。因此用一个常引用可以构成一个只读的变量,如constint&a=10a是一个只读变量。C++的内部实现是一个常指针:type&nameßàtype*name4引用作为函数返回值:返回局部变量的引用时,引用不能作为左值,也不能用它初始化其他引用,但是如果引用时静态的或者全局变量的引用时就可以。C++函数探幽:内联函数:inlineintfunction(…),在编译时将函数体直接替代函数被调用的地方,这样就减少了普通函数被调用时inline必须要和函数定义结合在一起,不能放在声明处,否则编译器忽略内联请求。虽然内联函数省时省空间,但是编译器不一定准许函数的内C++编译器不允许内联请求时会将内联函数当做普通函数处理。默认参数:C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有提供这个参数的值,编译器会自动用默认值代替。但是在函数定义时就不在指定默认参数值。默认参数有如下规则:开始使用默认参数的使用开始都后面的参数都要提供默认参数,否则编译器将报都要提供默认参数;在调用函数时,如果开始省略参数,那么后面所有参数都使用默认参数。函数占位参数:占位参数是在函数定义时只有类型声明,没有参数名声明的参数。一般情况下函数体内部无法使用占位参数。但是在调用时必须提供完整的参数个数。可以给占位参数提供默认参数。意义:为函数的后续版本的扩展埋下伏笔;兼容C语言中的不规范写法。函数重载:简单来说函数重载就是用同一个函数名来定义不同的函数。那编译器是如何区分这些函数的呢?事实上,编译器是通过参数列表来区分重载了的函数。即重载函数拥有不同的参数列表。不同的参数列表包括参数个数不同、参数类型不同、参数顺序不同,即满足上述三个条件之一就能构成重载函数。函数重载在构造函数中是非常有用的。当函数默认参数遇上函数重载会发生什么神奇的情况?假设这样的情况:程序当中定义两个重载函数,其中一个函数有一个默认参数,在主函数调用这个函数。能不能编译过呢?经过编译器的验证,当函数默认参数遇上函数重载,编译时没有问题的,但是调用时会发生函数二义性的错误。因此在程序中不能同时使用函数默认参数和函数重载。编译器调用重载函数的准则:ll尝试寻找可行的候选函数&精确匹配实参&通过默认参数匹配实参&通过默认类型转换匹配实参l匹配失败&最终找到的可行候选函数不唯一,出现二义性,编译失& 无法匹配所有候选者,函数未定义,编译失败注意:重载函数与返回值类型没有半毛钱关系。当重载函数赋值给函数指针时发生:根据重载规则挑选与函数指针参数列表一致的候选者严格匹匹配候选者的`函数类型与函数指针的函数类型只有上述两个不步骤都成功时才能匹配成功,成功调用正确的函数。C 与C++externC++Cextern“C”{content}使用如下处理统一处理:cplusplusC++CCC++C#ifdef extern“C”{#endif//函数声明或者函数定#ifdef cplusplus}#endifC++新关键字:newdelete变量申请数组申请type*pointer=newtype;type*pointer=newtype[N];//申请内存//…….//…….//使用内存deletepointerdelete[]pointer//释放内存可以看出,new地址赋给指针,访问都必须通过指针。new与malloc函数的区别:lmalloc是C库提供的函数,new关键字是C++的一部分lnew以具体类型为单位进行内存分配,malloc内存分配lnew在申请单个类型变量时可以进行初始化,malloc不具备初始化的特性名称空间(namespace):CC++将全局命名空间。命名空间的使用:l使用整个命名空间:usingnamespacename;l使用命名空间中的变量:usingname::variablel使用默认命名空间::variable类的静态成员:静态成员函数+静态成员变量类的静态成员变量:存储在全局数据区、不依赖于任何一个对象的类成员变量。语法规则:typeclassname::varname类的静态成员函数:语法规则:加上static修饰符v在C++中可以定义静态成员变量和静态成员函数v静态成员属于整个类所有,不需要依赖任何对象vpublicvpublicv静态成员函数可以直接访问静态成员变量定义静态成员变量:à在定义类时通过static修饰成员成员变量可以将变量定义成静态成员变量àtypeClassname::Varname;静态成员函数的定义:èstatic定义相同。注意:C++类对象中的成员函数和成员变量是分开存储的àstruct存分布和字节对齐方式;静态成员变量:存储在全局数据区;à成员函数:存储于代码段中静态成员函数和普通成员函数的区别:l静态成员函数不包含指向具体对象的指针this,但是普通成员函数包含有一个指向对象本身的指针:this指针继承:子类拥有父类的所有成员函数和成员变量、子类就是一种特殊的父类、子类对象可以当做父类对象使用、子类拥有父类没有的方法。C++中的访问级别与继承:public继承:父类成员在子类中保持原有的访问级别classchild:pubicparentprivate继承:父类成员在子类中是private访问级别classchild:parentßàclasschild:privateparentC++默认是私有继承:子类从父类继承得到的成员默认是私有的。private访问级别:protected类的pro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋季国家管网集团储运技术发展有限公司高校毕业生校园招聘考试参考试题(浓缩500题)含答案详解(a卷)
- 2026秋季国家管网集团浙江省天然气管网有限公司高校毕业生招聘笔试备考试题(浓缩500题)及参考答案详解
- 2026秋季国家管网集团山东分公司高校毕业生招聘考试参考题库(浓缩500题)附答案详解(巩固)
- 2026秋季国家管网集团华中公司高校毕业生招聘笔试备考题库(浓缩500题)(含答案详解)
- 2026秋季国家管网集团广西公司高校毕业生招聘考试备考试题(浓缩500题)附参考答案详解(黄金题型)
- 2026秋季国家管网集团广西公司高校毕业生招聘考试备考试题(浓缩500题)带答案详解(预热题)
- 2026秋季国家管网集团湖南公司高校毕业生招聘4人笔试参考题库(浓缩500题)附参考答案详解(基础题)
- 2025国网湖南省电力校园招聘(提前批)笔试模拟试题浓缩500题含答案详解(巩固)
- 2026国家管网集团高校毕业生招聘笔试参考题库(浓缩500题)及答案详解(考点梳理)
- 2026秋季国家管网集团云南公司高校毕业生招聘考试参考试题(浓缩500题)附参考答案详解(培优b卷)
- 食物过敏知识培训课件
- 金太阳联考四川省2026届高三上学期10月考试政治试卷
- 2024年海南省水利灌区管理局招聘真题
- 大模型+农业种植精准农业可行性分析报告
- 建筑知识培训下载课件
- 周大生珠宝知识培训课件
- 医院信息管理知识培训课件
- 2025年中国科学院研究所招聘面试模拟题答案及解析版支撑岗
- 俄式美食课件
- 辽宁省名校联盟2025年高三10月份联合考试 语文试卷(含答案详解)
- 2025年政府采购评审专家考试试题及答案
评论
0/150
提交评论