c++5数据的共享与保护讲解.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c5数据的共享与保护讲解

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 例5-9常引用作形参 float dist(const Point p1, const Point p2) { double x = p1.x - p2.x; double y = p1.y - p2.y; return static_castfloat(sqrt(x*x + y*y)); } int main( ) { //主函数 const Point myp1(1, 1), myp2(4, 5); cout The distance is: ; cout dist(myp1, myp2) endl; return 0; } * 共享数据的保护 对常引用的习惯用法 当函数中无须改变其值的参数,不宜使用普通引用方式传递,因为这会使得常对象无法被传入。 采用值传递或传递常引用的方式可避免这一问题。 值传递 vs 引用传递: 对大对象来说,值传递耗时多,应采用引用传递 * 共享数据的保护 * C++程序的一般组织结构 大规模项目,往往有多个源程序文件 每个源程序文件称为一个编译单元 类的定义必须出现在所有使用该类的编译单元中 一般划分为3个文件:类定义文件(.h文件)、类实现文件(.cpp文件)和类的使用文件(.cpp主函数文件) 利用类的封装特性,调试修改时只对某一个文件进行 * 例:多文件组织(1) * 例:多文件组织(2) * 例:多文件组织(3) * 编译预处理命令 #include 包含指令 将一个源文件嵌入到当前源文件中该点处。 #include文件名 按标准方式有哪些信誉好的足球投注网站,文件位于C++系统目录的include子目录下 例如:将系统提供的标准头文件包含到源程序处 #include iostream #include文件名 首先在当前目录中有哪些信誉好的足球投注网站,若没有,再按标准方式有哪些信誉好的足球投注网站 例如:将自定义的头文件包含到源程序处 #include point.h * C++多文件组织结构图 Windows操作系统情形 通过编译、连接生成.exe可执行文件 * 一般原则 (1)需要分配空间的定义放在源文件中 例如:函数的定义、命名空间作用域中变量的定义 (2)不需要分配空间的声明放在头文件中 例如:类声明、外部函数/外部变量的声明、基本数据类型常量的声明、内联函数 若将分配空间的定义写在头文件,当多个源文件包含该头文件时,导致多次分配空间,在连接时引发错误 * 外部变量与外部函数 外部变量: 一个变量在定义它的源文件中可以使用以外,还能被其他文件使用 命名空间作用域中定义的变量,默认为外部变量,在其他文件中使用需要以extern关键字加以声明 * 例:外部变量 //源文件1 int i = 3; void next(); int main(){ i++; next(); return 0; } void next(){ i++; other(); } //源文件2 extern int i; void other(){ i++; } * 外部变量与外部函数 定义性声明:分配内存,进行初始化 引用性声明:引用在别处定义的变量 在命名空间作用域中 不用extern修饰:定义性声明 用extern修饰并进行初始化:定义性声明 用extern修饰未进行初始化:引用性声明 可以有多次引用性声明,只能有唯一定义性声明 * 外部变量与外部函数 外部函数 所有类之外声明的函数(非成员函数),都具有命名空间作用域 调用前进行引用性声明(函数的原型声明) 加不加extern修饰效果相同 习惯:定义放在源文件中,引用性声明放在头文件中 * 将变量和函数限制在编译单元内 不希望一个源文件中定义的命名空间作用域的变量或函数被其他源文件引用 (1)安全性考虑 (2)防止名字的冲突 解决方法:使用匿名的命名空间 * 编译预处理 (1)编译前由预编译器对程序文本进行预处理 (2)预处理器提供了预处理指令和操作符 (3)由“#”引导,每条指令独占一行,不用分号结束,不属于C++语句 (4)可以出现在程序任何位置 编译预处理命令 * #include 编译预处理命令 #include 包含指令 将一个源文件嵌入到当前源文件中该点处。 #include文件名 按标准方式有哪些信誉好的足球投注网站,文件位于C++系统目录的include子目录下 #include文件名 首先在当前目录中有哪些信誉好的足球投注网站,若没有,再按标准方式搜

文档评论(0)

22ffbqq + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档