- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例:常引用作形参 #includeiostream using namespace std; void display(const double r); int main() { double d(9.5); display(d); return 0; } void display(const double r) //常引用作形参,在函数中不能更新 r所引用的对象。 { coutrendl; } 5.6 多文件结构和编译预处理命令 规模较大的项目(project)需要多个源程序文件 类的声明文件(*.h文件) 类的实现文件(*.cpp文件) 类的使用文件(*.cpp文件,包含主函数) 可以对不同的文件进行单独编写、编译,再链接 程序的调试、修改时可以只对其中某一个类的声明和实现进行修改 利用工程(workspace)来组合各个文件 注意:模版的声明与定义必须写在同一个文件中 //Clock.h文件,类的声明 class Clock { private: int Hour, Minute, Second; public: void SetTime(int h=0,int m=0,s=0); void ShowTime(); }; //Clock.cpp,类的实现 #includeiostream using namespace std; #include Clock.h void Clock::SetTime(int h,int m,int s) { Hour = h; Minute =m; Second =s; } void Clock::ShowTime() { cout Hour : Minute: Second; } //prjClock.cpp,类的使用 #includeiostream using namespace std; #include Clock.h int main() { Clock myClock; cout First Show:; myClock.SetTime(); myClock.ShowTime(); return 0; } 条件编译指令 在多文件工程中,由于#include指令的嵌套使用,头文件可能被多次包含,编译时造成类的重复定义等错误。条件编译指令可以避免该错误 如要被包含的程序段改写如下: #ifndef HEAD_H #define HEAD_H 类定义 #endif * 信工学院 中国地质大学(北京) C++语言程序设计基础 第5章 数据的共享与保护 5.1 标识符的作用域与可见性 5.2 对象的生存期 5.3 类的静态成员 5.4 类的友元 5.5 共享数据的保护 5.6 多文件结构和编译预处理命令 5.1 标识符的作用域与可见性 作用域是一个标识符的有效范围 函数原型作用域 局部作用域(块作用域) 类作用域 命名空间作用域 可见性是讨论标识符是否可以被引用 可见性表示从内层作用域向外层作用域“看”时能看见什么 如果标识在某处可见,则就可以在该处引用此标识符 局部作用域 类作用域 命名空间作用域 函数原型作用域 函数原型中的参数,其作用域始于(,结束于)。 例如,设有下列原型声明: double Area(double r); r的作用域仅在于此,不能用于程序正文其他地方,因而可有可无。 局部作用域 在块中声明的标识符,其作用域自声明处起,限于块中,例如: void fun(int a) { int b(a); cinb; if (b0) { int c; coutc; } } C的作用域 b的作用域 a的作用域 类作用域 类作用域作用于特定的成员名。 类X的成员M具有类作用域,对M的访问方式如下: 如果在X的成员函数中没有声明同名的局部作用域标识符,那么在该函数内可以访问成员M。 通过表达式x.M或者X::M访问。 通过表达式prt-M。 * 4. 命名空间作用域 命名空间可以解决类名、函数名等的命名冲突 命名空间的声明:namespace 命名空间名 { 函数声明、类声明、…… } 例:namespace SomeNs { class SomeClass { ... }; } 特殊的命名空间 全局命名空间:默认的命名空间 匿名命名空间:对每个源文件是唯一的 命名空间作用域 一个命名空间确定了一个命名空间作用
文档评论(0)