问题:
当函数声明的局部变量名与类数据成员名或外部变量名相同时,会隐藏数据成员名或外部变量名。此时可通过作用域解析符访问被隐藏的名字。
方法:
使用“类 :: 名字”访问被隐藏的类成员名字;
使用“ :: 名字”访问被隐藏的外部变量的名字。
bool flag= false;
class A
{
//...
private:
string name;
}
void A::f()
{
string name;
bool falg = true;
//....
name="foo";//内部的name
flag=false;//内部的flag
A:name="bar";//A类的name
::falg=true; //全局变量flag
}