-Ivan-
19-07-2013, 15:48
L'errore è unresolved external riguardo ad un enum che utilizzo nel costruttore di una classe.
La classe derivata è questa e l'errore credo derivi dalla riga rossa (credo perchè l'unresolved external con doppio click non ti porta alla riga che lo genera):
#include <cstdlib>
#include "IM_Weapon.h"
class IM_WeaponPistol : IM_Weapon
{
public:
//contructor for Shotgun
IM_WeaponPistol()
{
SetWeaponType(EWeaponType::pistol);
SetMaxAmmunitions(35);
SetDamage(8);
SetProjectileExplode(false);
//1.2 secs to equip a shotgun
SetEquippingTime(1200);
}
};
Questa classe deriva da questa:
enum EAmmo{ low_ammo, normal_ammo, loads_ammo };
enum EWeaponType{ shotgun, rocket_launcher, pistol };
class IM_Weapon
{
private:
...roba....
public:
IM_Weapon(){}
~IM_Weapon(){}
...molta altra roba...
};
Se non ho capito male ha problemi con l'enum EWeaponType.
Copio anche l'errore per intero che per me è abbastanza illeggibile:
Error 1 error LNK2019: unresolved external symbol "public: void __thiscall IM_Weapon::SetWeaponType(enum EWeaponType)" (?SetWeaponType@IM_Weapon@@QAEXW4EWeaponType@@@Z) referenced in function "public: __thiscall IM_WeaponPistol::IM_WeaponPistol(void)" (??0IM_WeaponPistol@@QAE@XZ) C:\Users\Ivan\Documents\C++ development\Immortal\Immortal\IM_MainChar.obj Immortal
E' lì l'errore? L'enum dovrebbe vederlo perchè ho incluso l'header in cui è dichiarato.
La classe derivata è questa e l'errore credo derivi dalla riga rossa (credo perchè l'unresolved external con doppio click non ti porta alla riga che lo genera):
#include <cstdlib>
#include "IM_Weapon.h"
class IM_WeaponPistol : IM_Weapon
{
public:
//contructor for Shotgun
IM_WeaponPistol()
{
SetWeaponType(EWeaponType::pistol);
SetMaxAmmunitions(35);
SetDamage(8);
SetProjectileExplode(false);
//1.2 secs to equip a shotgun
SetEquippingTime(1200);
}
};
Questa classe deriva da questa:
enum EAmmo{ low_ammo, normal_ammo, loads_ammo };
enum EWeaponType{ shotgun, rocket_launcher, pistol };
class IM_Weapon
{
private:
...roba....
public:
IM_Weapon(){}
~IM_Weapon(){}
...molta altra roba...
};
Se non ho capito male ha problemi con l'enum EWeaponType.
Copio anche l'errore per intero che per me è abbastanza illeggibile:
Error 1 error LNK2019: unresolved external symbol "public: void __thiscall IM_Weapon::SetWeaponType(enum EWeaponType)" (?SetWeaponType@IM_Weapon@@QAEXW4EWeaponType@@@Z) referenced in function "public: __thiscall IM_WeaponPistol::IM_WeaponPistol(void)" (??0IM_WeaponPistol@@QAE@XZ) C:\Users\Ivan\Documents\C++ development\Immortal\Immortal\IM_MainChar.obj Immortal
E' lì l'errore? L'enum dovrebbe vederlo perchè ho incluso l'header in cui è dichiarato.