Trying to use a global 2D array between 2 class files in C++ -


so i'm in process of writing game in c++ , there comes situation need share 2d array globally between multiple class files. here simpler version of code:

//first file creates , writes values 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 , power                 shipgunammo--;//decrease ammo                 shippower = shippower - railsm[7];//drain power                  //find valid storage position                 while(looptemp <= 100){//if within variable list bounds                     if(railsmentity[0][looptemp] == 0){//if entity slot available //                        railsmentitycountcurrent = railsmentitycount;                         looptemp = 0;                     }                     else{//if entity slot not available                         if(looptemp > 100){                             printf("error\n");                         }                         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 } 

//this other class file then, current simplicity, displays specific //value of railsmentity array

#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("%d\n", railsmentity[1][1]); }  railsmentity::~railsmentity() {     //dtor } 

but errors on second program states in constructor 'railsmentity::railsmentity()' , second error says error: expected primary-expression before '[' token in reference line printf("%d\n", railsmentity[1][1]);

so need make variable accessible?

you have variable , class same name, railsmentity. doesn't work in c++, need rename 1 of them else.


Comments

Popular posts from this blog

How to run C# code using mono without Xamarin in Android? -

html - grunt SVG to webfont -

c# - SharpSsh Command Execution -