考虑两个代码片段,如下所示:
案例I:
class A {
int globalOrLocal;
funcA1() {...}
funcA2() {...}
}
案例二:
int globalOrLocal;
class B {
funcB1() {...}
funcB2() {...}
}
在上面的案例I和案例II中,变量globalOrLocal
的声明可以称为全局?我认为两者都是,因为它们是在所有函数之外定义的,因为这个变量将存储在堆上。但我不确定。在线资源提供了一些简单的例子,没有任何类的参与。有人可以帮我解决疑问吗?
谢谢。
在案例中,globalOrLocal
不是全局变量。它是class A
的私有成员变量。它将为你构造的每个A
实例构建一个实例,当它被销毁时将与A
一起被销毁。
在案例II中,您(可能)具有全局变量。取决于是否有一个匿名命名空间包装它或另一个包含它的类和类A
作为成员/嵌套类。