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

时间:2013-04-22 11:38:49

标签: 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] ....我该怎么做?

2 个答案:

答案 0 :(得分:2)

最简单的方法 - 在头文件中使用

extern Surface surface[SURFACEBMP_COUNT];

然后在.cpp文件中声明并初始化它,并随时使用。

答案 1 :(得分:2)

使用extern,并将surface设为全球。

file.h

#ifndef FILE_H
#define FILE_H

...

extern Surface surface[SURFACEBMP_COUNT];

#endif

这是头文件,您应该将其包含在需要surface的位置。

file.cpp

#include "file.h"

Surface surface[SURFACEBMP_COUNT];