在命名空间范围之外定义命名空间的变量成员 在C++标准中,它是否表示在命名空间范围之外定义命名空间的变量成员的方法是通过在变量成员声明< < /P>中使用 ExtNe>/Cuff>说明符?
§3.4.1/14提到“顺便”: 如果命名空间的变量成员定义在 它的名称空间,然后是出现在 成员(在声明器id之后)被查找,就像 成员出现在其命名空间中。[示例: 3.1/2声明是一种定义,除非…它包含在命名空间范围之外定义命名空间的变量成员 在C++标准中,它是否表示在命名空间范围之外定义命名空间的变量成员的方法是通过在变量成员声明< < /P>中使用 ExtNe>/Cuff>说明符?,c++,c++11,language-lawyer,C++,C++11,Language Lawyer,§3.4.1/14提到“顺便”: 如果命名空间的变量成员定义在 它的名称空间,然后是出现在 成员(在声明器id之后)被查找,就像 成员出现在其命名空间中。[示例: 3.1/2声明是一种定义,除非…它包含extern说明符(7.1.1) extern与名称空间无关-它只是一种创建变量声明的方法,而该声明不是定义。然后,您可以自由选择在名称空间内或名称空间外提供单独的定义 3.1/2声明是一种定义,除非…它包含extern说明符(7.1.1) extern与名称空间无关-它只是一种生成不属于定义的变
extern
说明符(7.1.1)
extern
与名称空间无关-它只是一种创建变量声明的方法,而该声明不是定义。然后,您可以自由选择在名称空间内或名称空间外提供单独的定义
3.1/2声明是一种定义,除非…它包含extern
说明符(7.1.1)
extern
与名称空间无关-它只是一种生成不属于定义的变量声明的方法。然后,您可以自由选择在名称空间内部或外部提供单独的定义。3.1/2解释了extern
如何生成不属于定义的变量声明ion。无论该声明出现在哪个命名空间,无论是全局的还是其他的,这都适用。3.1/2解释了extern
如何作为一种方法来进行变量声明,而该声明不是一个定义。无论该声明出现在哪个命名空间,无论是全局的还是其他的,这都适用。
namespace N {
int i = 4;
extern int j;
}
int i = 2;
int N::j = i; // N::j == 4