声明进入不同的声明区域

时间:2014-05-15 03:54:50

标签: c++ entity

标准的哪一部分描述了实体如何确定声明的名称?例如

int foo(){ return 1; }

int main()
{
    int foo(); //I know that this foo denotes the "global" foo.
}

它是如何发生的?

1 个答案:

答案 0 :(得分:0)

在C ++ 11标准中,第3.5p6节说明了

  

块作用域中声明的函数的名称和块作用域extern声明声明的变量的名称具有链接。如果存在具有相同名称和类型的链接的实体的可见声明,忽略在最内部封闭命名空间范围之外声明的实体,则块范围声明声明该实体并接收先前声明的链接。