成员变量是否有外部联系?

时间:2017-09-07 19:07:55

标签: c++

我已阅读this并说明了

  

类的名称,它们的成员函数,静态数据成员(const   或不),嵌套类和枚举,以及函数优先   在类主体中引入了友元声明

默认情况下有外部链接..但是在类体内声明的未指定静态的变量怎么样?此外,它从

开始
  

在命名空间范围内声明的以下任何名称都具有外部名称   联动

,但是类范围被认为是命名空间范围吗?我的意思是类范围和命名空间范围是不同的,那么为什么他们开始说下面的内容适用于在命名空间范围内声明的内容?我的意思是,例如,成员函数在类范围内声明,并且它们就像是命名空间作用域一样提到它们吗?

2 个答案:

答案 0 :(得分:0)

以下示例:

class C
{
public:
    int n;
};

C e;
namespace { C i; }

e有外部链接,内部i。现在谈谈n的联系有多大意义?如果有的话,你可以考虑n继承包含对象的链接,因此e.n将有外部的,i.n内部链接 - 为了更好地理解,我不认为这是正确的措词...

答案 1 :(得分:0)

引用标准:

  

当一个名称可能表示与另一个范围内的声明引入的名称相同的对象,引用,函数,类型,模板,名称空间或值时,该名称具有链接

翻译成普通英语:

如果您可以在另一个范围内重新声明它,则它具有链接。否则,不。

您无法在另一个范围内重新声明非静态类数据成员,因此它没有链接。