Will problem is almost resolved

, weird, I didn't ask me any of this for my other classes.
First I think you meant for the to be like this:
Shooting_Bullets::Shooting_Bullets(const Shooting_Bullets& copy) {
this->BulletID = copy.BulletID;
this->Exist = copy.Exist;
// etc...
}
second:
anyway when I just put the " Shooting_Bullets(void); // Default constructor" it goes :
unresolved external symbol "public: __thiscall Shooting_Bullets::Shooting_Bullets(void)" (??0Shooting_Bullets@@QAE@XZ) referenced in function "void __cdecl `dynamic initializer for 'Bullet''(void)" (??__EBullet@@YAXXZ)
Am guessing it has a problem with "Shooting_Bullets Bullet[MaxBullets];" since I moved it in the .cpp file, to resolve some problems, like :
Player.obj : error LNK2005: "class Shooting_Bullets * Bullet" (?Bullet@@3PAVShooting_Bullets@@A) already defined in Main.obj
so now the .cpp looks like this:
#include "Main.h"
#include "DarkGDK.h"
#include "SC_Collision.h"
#include "Shooting.h"
#include "Player.h"
#define HitObjects 100 // All Objects that the bullet would collide with must be bigger than this
#define BulletObjects 1000 // This is the range from where the code looks for free slots to create new bullets
#define MaxBullets 100 // This is the Max number of bullets to cycle, this effects memory
#define ShootDelay 10 // This is the amount of time between shooting
#define BulletSpeed 10 // This is the speed the bullet travels
#define BulletLife 1000 // The bullet will be killed after this time to prevent it from moving around aimlesly
Shooting_Bullets :: Shooting_Bullets(int objID, char * BulletName)
{
dbLoadObject(BulletName,objID);
objID=BulletID;
}
Shooting_Bullets :: ~Shooting_Bullets()
{
dbDeleteObject(BulletID);
}
Shooting_Bullets::Shooting_Bullets(const Shooting_Bullets& copy)
{
this->BulletID = copy.BulletID;
this->Exist = copy.Exist;
// etc...
}
void Shooting_Bullets :: Shoot()
{
Object = BulletObjects; // Sets the specific object range
while (dbObjectExist(Object)) Object++; // Looks for an open slot
dbMakeObjectSphere(Object,20); // This makes the bullet
dbPositionObject(Object, dbCameraPositionX(), dbCameraPositionY(), dbCameraPositionZ()); //Sets the Position
dbSetObjectToCameraOrientation (Object); //Sets the orientation
Exist = true; // Now it exists
Life = BulletLife; //Sets its life Span
}
void Shooting_Bullets :: Kill() // Destroys the bullet
{
dbDeleteObject(Object); //Delete the object
Exist = false; // Now it no longer exists
}
void Shooting_Bullets :: Run() // The Bullet's Run code
{
if (Exist == true) // It wil only run if it exists
{
Life--; // Life Span Timer
if (Life <= 0) Kill(); // Destroys it when life is over
dbMoveObject(Object, BulletSpeed); // Moves it at the traveling speed
int Collide = dbObjectCollision(Object,0); // Checks if it hits anything
if (Collide > HitObjects) Kill(); // Destroys it when it hits a wall
}
}
int ReloadTimer; // This is the timer alowing the player to shoot
int CurrentBullet; // This is the bullet cycle
Shooting_Bullets Bullet[MaxBullets]; // Makes the actual bullet array <-----problem :S
void RunBullets() // This will run all the bullets
{
ReloadTimer--; // Counts down the player usage timer
for (int runner = 0; runner < MaxBullets; runner++)
{
Bullet[runner].Run();
}
}
void ShootBullet()
{
if (ReloadTimer <=0)
{
if (CurrentBullet >= MaxBullets) CurrentBullet = 0; // Makes sure that we stay in the cycle
Bullet[CurrentBullet].Shoot(); //Shoots it
CurrentBullet++; //Next Bullet
ReloadTimer = ShootDelay; // Resets Timer
}
}
The problem is, I don't get what the compiler wants or doesn't like :S.