cpp在声明全局2d数组时遇到问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cpp在声明全局2d数组时遇到问题相关的知识,希望对你有一定的参考价值。

我试图声明一个全局范围变量,我想在我的所有其他cpp文件中访问,包括我的头文件,但我遇到了一些麻烦。

所以我有一个头文件“AnimationManger.h”:

extern const int NUM_ANIMS;
extern const int ANIM_FRAMES;

和我的“AnimationManager.cpp”文件包含:

#include "AnimationManager.h"
const int NUM_ANIMS = 8;
const int ANIM_FRAMES = 4;

int animArray[NUM_ANIMS][ANIM_FRAMES];

//other functions

我想在包含AnimationManager.h的其他cpp文件中引用我的animArray变量。

我是cpp的新手,已经用csharp编程作为业余爱好已经有好几年了,现在我有点麻烦地完全围绕cpp范围如何工作,因为这个概念对我来说似乎很陌生。

答案

将以下行移动到.h文件。

const int NUM_ANIMS = 8;
const int ANIM_FRAMES = 4;

并在此之后将数组声明为extern变量。

extern int animArray[NUM_ANIMS][ANIM_FRAMES];

之后,.cpp文件中唯一要做的就是定义数组。

#include "AnimationManager.h"

int animArray[NUM_ANIMS][ANIM_FRAMES];

我是cpp的新手,已经用csharp编程作为业余爱好已经有好几年了,现在我有点麻烦地完全围绕cpp范围如何工作,因为这个概念对我来说似乎很陌生。

我希望你使用一本或多本好书来学习这门语言。如果您还没有这样做,请访问The Definitive C++ Book Guide and List并选择一本好书来学习。

以上是关于cpp在声明全局2d数组时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

C/c++中 数组全局变量的定义声明 与 引用声明

在片段着色器中,为啥我不能使用平面输入整数来索引 sampler2D 的统一数组?

android studio:设置全局字符串数组时遇到问题

VSCode自定义代码片段——声明函数

VSCode自定义代码片段8——声明函数

为啥在c ++中声明一个全局数组时,它可以给出的大小大于在main中声明它[重复]