在学习C++过程中,经常看到这么一个说法:“命名空间作用域下的....”,其实C++的作用域(以前一直都是认为只是参数的有效范围)一直都在用,但系统的划分可能却没划分过,因此,将C++的作用域划分记录在此。
1.作用域
所谓作用域,即一个标志符在程序中起作用的区域。在C++中,作用域被细致的划分为函数原型作用域、局部作用域、类作用域、命名空间作用域。
1.1函数原型作用域
函数原型作用域是C++最小的作用域,在函数原型声明时形式参数的作用范围就是函数原型作用域。
例如,有如下函数声明:
double area (double radius);
标识符radius的作用(或称有效)范围就在函数area形参列表的左右括号之间,在程序的其他地方不能引用这个标识符。因此标识符radius的作用域称做函数原型作用域。
1.2局部作用域
所谓局部作用域,是指在某一局部内生效。如下图: