我们称定义在在某个函数内部的类为局部类。局部类定义的类型只在定义它的作用域内可见。和嵌套类不同,局部类的成员受到严格的限制。
注意:局部类的所有成员(包括函数在内)都必须完整定义在类的内部。因此,局部类的作用与嵌套类相比很不一样。
如下面这个例子:
int a,val;
void function(int val){
static int mValue;
struct Partial{
int mInter;
int mBase;
void InterFunction(int l=a){
mBase = val; // 错误:val 是function 的局部变量;
mBase = ::val; //正确:val是一个全局对象;
mBase = mValue; // 正确: 使用一个静态局部对象
mInter = 100;
}
}
}