访问类外部的变量
Accessing a variable outside a class
我在main.cpp
文件中有一个变量,如下所示:
SDL_Renderer* gRenderer = NULL;
我有一个在单独的文件(.h
和.cpp
文件中的类)。在.cpp
文件中,我想像这样访问gRenderer
:
newTexture = SDL_CreateTextureFromSurface( gRenderer, loadedSurface );
我尝试在类中放置一个SDL_Renderer
,但是当我编译时,它只给我一个警告,指出它未使用,当我运行程序时,我收到来自 SDL_GetError() 的消息:
"无法从颜色创建纹理.png!SDL 错误:无效 渲染器"
如何在单独文件中的类中执行此操作?
为了访问它,它的文件必须包含在它将使用的文件中。因此,您应该将变量声明移动到头文件(如 main.h
),并将其包含在main.ccp
和将使用的文件中。
但是,要做到这一点,在头文件中,您应该将其声明为 extern,并在 main.cpp
中正常定义:
main.h
extern SDL_Renderer* gRenderer;
main.cpp
SDL_Renderer* gRenderer = NULL;
这样,变量就被定义并可以跨多个文件正常使用,并保留其值。
如果您想了解更多信息:如何使用 extern 在源文件之间共享变量?
相关文章:
- 在类函数中初始化外部作用域变量
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 同时具有"外部"和"内联"说明符的变量
- 访问 PlatformIO 中的外部环境变量
- 如何在函数外部访问函数中局部变量的值?
- 堆栈/帧指针作为外部变量
- 使用外部文件中的变量进行视觉C++
- 内联函数/变量的外部链接
- 当使用lambda进行变量的复杂初始化时,如何处理从内部抛出的lambda外部异常
- const_cast const 方法中的"this"将"this"分配给外部变量?
- 全局外部指针变量在 DLL 中不可见
- 在没有外部文件的情况下在应用会话之间保存变量
- 外部变量的初始化
- 全局变量的循环依赖性与外部说明符
- 如何在命名空间中初始化外部变量
- 声明类指针变量外部班级
- 在 VC++ 中访问一个文件中声明的变量.(外部关键字用法)
- 为什么 cout 不打印变量"C"外部?
- 全局变量外部声明后的线程专用指令
- c++变量外部声明