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