清华大学c讲义郑莉第5章数据的共享与保护.ppt

清华大学c讲义郑莉第5章数据的共享与保护.ppt

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

将变量和函数限制在编译单元内 使用匿名的命名空间:在匿名命名空间中定义的变量和函数,都不会暴露给其它的编译单元。 namespace { //匿名的命名空间 int n; void f() { n++; } } 这里被“namespace { …… }”括起的区域都属于匿名的命名空间。 * 5.6多文件结构和编译预处理命令 —— 5.6.1 C++的一般组织结构 5.6.3 标准C++库 标准C++类库是一个极为灵活并可扩展的可重用软件模块的集合。标准C++类与组件在逻辑上分为6种类型: 输入/输出类 容器类与ADT(抽象数据类型) 存储管理类 算法 错误处理 运行环境支持 * 5.6多文件结构和编译预处理命令 5.6.4 编译预处理 #include 包含指令 将一个源文件嵌入到当前源文件中该点处。 #include文件名 按标准方式搜索,文件位于C++系统目录的include子目录下 #include文件名 首先在当前目录中搜索,若没有,再按标准方式搜索。 #define 宏定义指令 定义符号常量,很多情况下已被const定义语句取代。 定义带参数宏,已被内联函数取代。 #undef 删除由#define定义的宏,使之不再起作用。 * 5.6多文件结构和编译预处理命令 条件编译指令——#if 和 #endif #if 常量表达式 //当“ 常量表达式”非零时编译 程序正文 #endif ...... * 5.6多文件结构和编译预处理命令 —— 5.6.4 编译预处理 条件编译指令——#else #if 常量表达式 //当“ 常量表达式”非零时编译 程序正文1 #else //当“ 常量表达式”为零时编译 程序正文2 #endif * 5.6多文件结构和编译预处理命令 —— 5.6.4 编译预处理 条件编译指令——#elif #if 常量表达式1 程序正文1 //当“ 常量表达式1”非零时编译 #elif 常量表达式2 程序正文2 //当“ 常量表达式2”非零时编译 #else 程序正文3 //其他情况下编译 #endif * 5.6多文件结构和编译预处理命令 —— 5.6.4 编译预处理 条件编译指令(续) #ifdef 标识符 程序段1 #else 程序段2 #endif 如果“标识符”经#defined定义过,且未经undef删除,则编译程序段1,否则编译程序段2。 * 5.6多文件结构和编译预处理命令 —— 5.6.4 编译预处理 条件编译指令(续) #ifndef 标识符 程序段1 #else 程序段2 #endif 如果“标识符”未被定义过,则编译程序段1,否则编译程序段2。 * 5.6多文件结构和编译预处理命令 —— 5.6.4 编译预处理 5.7综合实例——个人银行账户管理程序 在上一章综合实例的基础上对程序作如下改进: 为SavingsAccount类增加一个静态数据成员total,用来记录各个账户的总金额,并为其增加相应的静态成员函数getTotal用来对其进行访问。 将上一节综合实例程序中SavingsAccount类的诸如getBalance、accumulate这些不需要改变对象状态的成员函数声明为常成员函数。 将在上一章综合实例的基础上对程序结构进行调整:建立两个新的文件account.h和account.cpp,分别存放SavingsAccount类的定义和实现。 * //account.h #ifndef __ACCOUNT_H__ #define __ACCOUNT_H__ class SavingsAccount { //储蓄账户类 private: int id; //账号 double balance; //余额 double rate; //存款的年利率 int lastDate; //上次变更余额的时期 double accumulation; //余额按日累加之和 static double total; //所有账户的总金额 //记录一笔帐,date为日期,amount为金额,desc为说明 void record(int date, double amount); //获得到指定日期为止的存款金额按日累积值 double accumulate(int date) const { return accumulation + balance * (date - lastDate); } * 5.7综合实例——个人银行账户管理程序 public: //构造函数 SavingsAcc

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档