


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. C+存储区域我们在程序开发中将C+存储区域分为以下几步:1、栈区(stack) 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由系统回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表3、全局区(静态区)(static),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束后由系统释放4、文字常量区 常量字符串就是放在这里的。程序结束后由系统释放5、程序代码区存放函数体的二进制代码。2.头文件中常包含的内容 函数原型。 使用#define或const定义的符号常量 结构声明。 类声明。 模板声明。 内联函数。3.头文件管理(防止重复包含) #ifndef COORDIN_H_ #define COORDIN_H_ /Place include file contents here #endif4.多个库的链接 C+标准允许每个编译器设计人员以他认为合适的方式实现名称修饰,因此由不同编译器创建的二进制模块(对象代码文件)很可能无法正确链接。在编译链接模块式,请确保所有对象文件或库都是由同一个编译器生成的。5.存储连续性、作用域和链接性 (1)存储连续性自动存储连续性:在函数定义中声明的变量(包括函数参数)静态存储连续性:在函数定义外定义的变量和使用关键字static定义的变量动态存储连续性:用new操作符分配的内存,知道delete操作符时释放。 (2)作用域局部作用域:只在定义它的代码块中可用。auto,register。寄存器变量是另一种形式的自动变量。CPU访问寄存器中值的速度比访问堆栈中内存快。如果变量被存在寄存器中(声明中只要使用了register),则没有内存地址,不能将地址操作符用于寄存器变量。全局作用域(文件作用域):从定义位置到文件结尾之间都可用。在类中声明的成员的作用域为整个类。在名称空间中声明的变量的作用域为整个名称空间。函数的作用域是整个类或整个名称空间(不能再代码块内定义函数)。(3)链接性内部链接性:只能由一个文件中的函数共享外部链接性:可在文件间共享6.静态变量静态变量有三种链接性:外部、内部、无。外部链接性:在代码块的外面声明(也称为全局变量)内部链接性:在代码块的外面声明,并使用static限定符无链接性:在代码块内声明,并使用static限定符如果文件定义了一个静态外部变量,其名称与另一个文件中声明的常规外部变量相同,则在该文件中,静态变量将隐藏常规外部变量。7.定义和声明定义声明(称为定义)和引用声明(称为声明)。仅当声明将为变量分配存储空间时(即定义声明),才能在声明中初始化变量。8.类的静态数据成员对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷贝,由该类型的所有对象共享访问。静态数据成员在没有产生类对象时其作用域就可见,即在没有产生类的实例时就可以操作它。静态数据成员和普通数据成员一样遵从public,protected,private访问规则。静态成员变量要实际的分配空间,所以不能在类声明中定义。类声明只声明一个类的“尺寸和规格”,并不进行实际的内存分配,所以在类声明中写成定义是错误的。它也不能在头文件中类声明的外部定义,因为那会造成在多个使用该类的源文件中,对其重复定义。因此静态成员变量应该在类中声明,格式为:static ElemType VarName;在使用该静态变量的cpp文件中定义并初始化,格式为:ElemType ClassName:VarName=*;使用的格式为:ClassName:VarName9.类的静态成员函数普通的成员函数一般都隐含了一个this指针,this指针指向类的对象本身,因为普通成员函数总是具体的属于某个类的具体对象的。通常情况下,this 是缺省的。如函数fn()实际上是this-fn()。但是与普通函数相比,静态成员函数由于不是与任何的对象相联系,因此它不具有this指针。出现在类体外的函数定义不能指定关键字static,static是声明性关键字。静态成员函数可以继承和覆盖,但无法是虚函数(1) 静态成员函数只能访问静态数据成员和静态成员函数;(2) 非静态成员函数可以任意地访问静态成员函数和静态数据成员。10.const变量const全局变量的链接性为内部的,如果出于某种原因希望某个常量的链接性是外部的,则可以使用extern关键字来覆盖默认的内部链接性。extern const int states=10; (const变量定义时必须初始化)11.函数所有函数的存储持续性都自动为静态的,即在整个程序执行期间都一直存在。在默认情况下,函数的链接性为外部的,即可以在文件间共享。还可以使用关键字static将函数的链接性设置为内部的,使之只能在一个文件中使用。必须同时在原型和函数定义中使用该关键字。与变量一样,静态函数将覆盖外部定义。对于每一个非内联函数,程序中只能包含一个定义。对于链接性为外部的函数来说,只能有一个文件包含该函数的定义,但使用该函数的每个文件都应该包含其函数原型。12.内存动态分配动态内存由new和delete控制,而不是由作用域和链接性规则控制。因此因此可以在一个函数中分配动态内存,而在另一个函数中释放它。虽然存储方案概念不适用于动态内存,但是适用于用来跟踪动态内存的自动和静态指针变量。13.布局new操作符New操作符还有另一种变体,布局ne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合规考试全量复习试题有答案
- 2025年四川省绵阳市中考二模道德与法治试题(原卷版+解析版)
- 2024北京西城区四年级(下)期末数学试题及答案
- 连锁餐饮的精细运营
- 立秋报道的新视角
- 2025年广州入小学需提供租赁合同
- 2025合同履行的相对性
- 2025租房合同协议范本标准版
- 功血首次病程记录
- 诌议混凝土结构工程质量通病及治理
- 隧道工程施工安全管理规定
- 《脑脊液幻灯》课件
- 2024年医疗大数据分析与应用项目合同
- 绿化养护报价及方案
- 2025年中移铁通限公司公开招聘工作人员100名高频重点提升(共500题)附带答案详解
- 外墙保温及涂料施工组织设计方案
- 移植排斥反应早期诊断-洞察分析
- 电力系统继电保护知到智慧树章节测试课后答案2024年秋福建水利电力职业技术学院
- IATF16949基础知识培训教材
- 酒店服务流程规范化手册
- 消化道疾病护理
评论
0/150
提交评论