今天学习了四个方面。作用域与可见性,友元,编译预处理命令,多文件结构和工程。
1.作用域:是标识符(变量、常量、类、对象、函数等)的有效范围;可见性:标识符是否可以引用的问题。块是一对花括号括起来的一段程序单元。在块中声明的标识符,其作用域从声明处开始,直到块结束的右花括号。
2.作用域可见性的一般性规则:标识符应声明在先,引用在后。
在同一作用域中,不能声明同名的标识符。
如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。
对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见。
3.友元:友元是C++提供的一种破坏数据封装和数据隐藏的机制。
通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的private 和 protected信息。
可以使用友元函数和友元类。
为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元。
4.多文件结构和编译预处理命令
#include 包含指令:将一个源文件嵌入到当前源文件中该点处。
#include<文件名>:按标准方式搜索,文件位于C++系统目录的include子目录下
#include"文件名":首先在当前目录中搜索,若没有,再按标准方式搜索。
#define 宏定义指令:定义符号常量:#define PI 3.14#undef删除由#define定义的宏,使之不再起作用。
一个源程序一般至少分为三个源文件:类声明文件(.h文件),类实现文件(.cpp文件),类的使用文件(main( ) 所在的.cpp文件)。
问题:程序出现“初始化”:从“double”到“const float”截断。
解决方法: