C++冲突声明的标准定义



标准在哪里定义了冲突声明?

例如,如果我在命名空间范围内有以下声明:

extern const int a;
extern int a;

这将是声明冲突的一个例子。

根据 [dcl.type],cv 限定符 const 是类型的一部分,因此const int x;int x; 构成了变量 x 的不同声明。

然后我们到达 [over]/1,它指出:

当为同一作用域中的单个名称指定了两个或多个不同的声明时,该名称称为重载。通过扩展,同一作用域中声明相同名称但类型不同的两个声明称为重载声明。只能重载函数和函数模板声明;变量和类型声明不能重载。

最新更新