c++ - 如何从另一个 .cpp 文件访问全局结构?

标签 c++ oop class struct global

<分区>

在 Surface.h 中我有:

struct Surface{

    bool isAllowedOnTile[TILETYPE_COUNT];

    float moveBecomes;  // When this is 0, it is ignored
    float moveChange;   // Is ignored if moveBecomes is non-zero
    float affChange[ELEMENT_COUNT];

    ID2D1BitmapBrush* pBrush;
};

在某些时候,我需要像这样初始化多个表面:

Surface surface[SURFACEBMP_COUNT];

surface[0].moveBecomes = 123;
surface[0].moveChange = 0;
surface[0].affChange[0]= 2.0f;

...

然后我想从程序中的任何位置访问 surface[0]、surface[1]、surface[2]...。我该怎么做?

最佳答案

使用extern,并使surface成为全局的。

文件.h

#ifndef FILE_H
#define FILE_H

...

extern Surface surface[SURFACEBMP_COUNT];

#endif

这是头文件,您应该在需要surface的地方包含它。

文件.cpp

#include "file.h"

Surface surface[SURFACEBMP_COUNT];

关于c++ - 如何从另一个 .cpp 文件访问全局结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146260/

相关文章:

class - 当必需的属性是有条件的且值仍为空时,Angular2 将 ng-valid 类应用于字段

C++ 函数的错误信息重定义

c++ - new 似乎没有办法增加或缩小分配?

c++ - boost c++ unordered_map 使用的是什么哈希函数?

c++ - 在实例之间传递另一个类

c++ - 为什么我不能使用 'this->' 访问非静态函数中的静态成员?

Java - 如何创建 Class<Map<Object,List<Object>>> 对象

c++ - c++中的位运算

c++ - 在 C++ 中, `var << ifstream` 与 `ifstream >> var` 相同吗?

ios - 如何设置我的 UISlider 和 UISwitch 的初始值?