试图在C++中的两个类文件之间使用全局2D数组
Trying to use a global 2D array between 2 class files in C++
所以我正在用C++编写游戏,出现了一种情况,我需要在多个类文件之间全局共享一个2D数组。这是我的代码的一个更简单的版本:
//创建并写入railsmentity[7][100]值的第一个文件
#include "weaponfire.h"
#include <iostream>
#include <sdtlib.h>
#include <stdio.h>
using namespace std;
//Ship common variables
extern int shipgun;
extern int shipgunammo;
extern double shippower;
//Gun variables
extern int railsm[];
/*
//Projectile common variables
extern double gunx;
extern double guny;
extern double gunz;
extern double gunpitch;
extern double gunyaw;
extern double gunspeed;
extern double gunspeedmax;
*/
//Ship navigation variables
extern double x;
extern double y;
extern double z;
extern double pitch;
extern double yaw;
extern double truespeed;
//Entity variables
int extern railsmentitycount;
int railsmentity[7][100];//[0]existance, [1]x, [2]y, [3]z, [4]pitch, [5]yaw, [6]truespeed, [7]maxspeed
int railsmentitycountcurrent = 0;
extern bool space;
int looptemp = 0;
weaponfire::weaponfire()
{
if(space == true){
if(shipgun == 0){//No weapon
printf("No weapon equipped!n");
}
if(shipgun == 1){//railsm
if(shipgunammo > 0 && shippower >= railsm[7]){//Check ammo and power
shipgunammo--;//Decrease ammo
shippower = shippower - railsm[7];//Drain power
//Find a valid storage position
while(looptemp <= 100){//If you are within the variable list bounds
if(railsmentity[0][looptemp] == 0){//If the entity slot is available
// railsmentitycountcurrent = railsmentitycount;
looptemp = 0;
}
else{//If entity slot is not available
if(looptemp > 100){
printf("Errorn");
}
looptemp++;
}
}
//railsm local initial entity raycast
railsmentity[0][railsmentitycountcurrent] = 1;
railsmentity[1][railsmentitycountcurrent] = x;
railsmentity[2][railsmentitycountcurrent] = y;
railsmentity[3][railsmentitycountcurrent] = z;
railsmentity[4][railsmentitycountcurrent] = pitch;
railsmentity[5][railsmentitycountcurrent] = yaw;
railsmentity[6][railsmentitycountcurrent] = truespeed;
}
}
}
}
weaponfire::~weaponfire()
{
//dtor
}
//然后,为了当前的简单性,这个其他类文件显示railsmentity数组的特定//值
#include "railsmentity.h"
#include "weaponfire.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
extern int railsmentity[7][100];//[0]existance, [1]x, [2]y, [3]z, [4]pitch, [5]yaw, [6]truespeed, [7]maxspeed
railsmentity::railsmentity()
{
printf("%dn", railsmentity[1][1]);
}
railsmentity::~railsmentity()
{
//dtor
}
但我在第二个程序中遇到了错误,该程序在构造函数'railsmentity::railsmentity()'中声明,第二个错误说错误:引用行printf("%d\n",railsmentiy[1][1])的'[]标记之前应为主表达式
那么,我需要做些什么才能访问这个变量呢?
您有一个变量和一个同名的类railsmentity
。这在C++中不起作用,您需要将其中一个重命名为其他名称。
相关文章:
- 如何在cpp文件之间切换窗口?在Qt中
- 如何使用管道在父级和子级之间来回传递文件
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 在.cpp文件之间传递结构声明,而不使用全局头文件
- 内联函数的函数本地静态对象是否在共享对象文件之间共享?
- 在.cpp文件之间传递全局字符串变量?
- 如何在 的开头<x>和结尾<y>之间更改带有文件输出的字符串的值
- 在两个.cpp文件之间定义全局类/结构指针
- 文件删除(使用取消链接)与释放所有磁盘空间之间的延迟
- CSV文件之间的差异,使用getline()产生不同的结果
- 检测到 Conan 配置文件设置与 CMake 之间的编译器版本不匹配
- 如何从txt文件c++中提取括号之间的数字
- 包括两个文件 C++ 之间的冲突
- 在没有外部文件的情况下在应用会话之间保存变量
- 如何读取特定单词之间的文本文件?
- OpenCV 文件存储 - 错误:元素之间的解析错误 (icvYMLParseValue) 缺失
- 为什么 .cpp 文件和 .h 文件之间有区别?
- 在结构函数之间传递文件路径 C++ 编辑:修复LNK2019错误
- 在头文件和 .cc 文件之间建立关系
- CPP项目中.fdf和.h文件之间的差异