第5章程序结构 H 第5章程序结构 5.1作用域与可见性 5.,2生存期 53局部变量和全局变量 5.4静态成员 55友元 5.6常类型 5.7多文件结构 5.8编译预处理 BACK
第5章 程序结构 第5章 程序结构 5.1 作用域与可见性 5.2 生存期 5.3 局部变量和全局变量 5.4 静态成员 5.5 友元 5.6 常类型 5.7 多文件结构 5.8 编译预处理
第5章程序结构 H 5.1作用域与可见性 5.1.1作用域 作用域是一个标识符在程序正文中有效的区域。 C++的作用域有函数原型作用域、块作用域(亦称局 部作用域)和文件作用域。 1.函数原型作用域 函数原型作用域是C+程序中最小的作用域。前面 介绍过,在函数原型的声明中一定要包含参数的类型 声明
第5章 程序结构 5.1 作用域与可见性 5.1.1 作用域 作用域是一个标识符在程序正文中有效的区域。 C++的作用域有函数原型作用域、块作用域(亦称局 部作用域)和文件作用域。 1. 函数原型作用域 函数原型作用域是C++程序中最小的作用域。前面 介绍过,在函数原型的声明中一定要包含参数的类型 声明
第5章程序结构 H 这里参数的声明就属于函数原型作用域,它开始于 函数原型声明的左括号“(”,结束于右括号“)”。 例如,有如下函数声明 double area( double length double width) 由于形参 length和wdth只在括号之内有效,在程序 的其它地方无法引用这个标识符,如果要引用,必须重 新定义。例如: double area( double length; double width);/函数声明 length=10 width=5
第5章 程序结构 这里参数的声明就属于函数原型作用域,它开始于 函数原型声明的左括号“(” ,结束于右括号“)” 。 例如,有如下函数声明: double Area(double length,double width); 由于形参length和width只在括号之内有效,在程序 的其它地方无法引用这个标识符,如果要引用,必须重 新定义。例如: double Area(double length,double width); //函数声明 length=10; width=5;
第5章程序结构 H 这段代码会引起无定义的标识符编译错误。所以, 对于这种情况,标识符 length和 width实际上是可有可无 的,省去它,也决不会影响到程序的编译和运行结果。 例如 double area( double, double) 但是,考虑到程序的可读性,还是要在函数原型声 明时,给形参指定一个有意义的标识符,而且一般总 是与该函数定义时声明的参数标识符一致
第5章 程序结构 这段代码会引起无定义的标识符编译错误。所以, 对于这种情况,标识符length和width实际上是可有可无 的,省去它,也决不会影响到程序的编译和运行结果。 例如: double Area(double,double); 但是,考虑到程序的可读性,还是要在函数原型声 明时,给形参指定一个有意义的标识符,而且一般总 是与该函数定义时声明的参数标识符一致
H 第5章程序结构 例如 double area( double length, double width);∥函数声明 double area( double length, double width) )/-数定义
第5章 程序结构 例如: double Area(double length,double width); //函数声明 //... double Area(double length,double width) //函数定义 { //... }