c++ - 关于全局变量
问题描述
考虑如下两个代码片段:
案例一:
class A {
int globalOrLocal;
funcA1() {…}
funcA2() {…}
}
案例二:
int globalOrLocal;
class B {
funcB1() {…}
funcB2() {…}
}
以上案例一和案例二中,哪个变量声明globalOrLocal
可以称为全局变量?我认为两者都是,因为它们是在所有函数之外定义的,因此该变量将存储在堆上。但我不确定。在线资源提供了简单的示例,没有任何课程参与。有人可以帮助解决我的疑问吗?
谢谢。
解决方案
如果 IglobalOrLocal
不是全局变量。它是 的私有成员变量class A
。将为您构造的每个实例构造它的一个实例,A
并且A
在它被销毁时将被销毁。
在案例 II 中,您(可能)有一个全局变量。取决于是否有一个匿名命名空间包装它或另一个持有它的类和A
作为成员/嵌套类的类。
推荐阅读
- javascript - 根据输入循环范围更改显示
- google-chrome - Chrome 浏览器“从上次中断的地方继续”不再有效
- excel - 具有大量值的数组的问题
- react-native - 反应导航从没有标签的 createBottomTabNavigation 导航回屏幕
- autodesk-forge - 如何将多个 IFC 模型加载到查看器?
- html - 网络抓取中的正则表达式使用
- big-o - O(n + log(m)) 可以简化吗?
- c - 2D ARRAY 单词搜索问题 Exception throwed error
- javascript - 这个js函数调用技巧背后发生了什么?(0, console.log)("你好世界!")
- jquery - 仅在特定 url 上加载 css 和/或 jquery