Erreur variable dans une classe

Signaler
Messages postés
1
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
21 octobre 2006
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
voila jai un probleme ::

class SPEC Player : public Unit
{
    friend class WorldSession;
    public:
        explicit Player (WorldSession *session);
        ~Player ( );

        void AddToWorld();
        void RemoveFromWorld();

        void TeleportTo(uint32 mapid, float x, float y, float z, float orientation, bool outofrange = true);

        Position returnPos;
        bool isInArena = false;

ca cest e debut de la classe et quand je compile jai une erreur C2864 : only static const integral data members can be initialized within a class

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
bool isInArena = false;

T'es pas en Java ici, c'est variables d'instance s'initialisent dans le constructeur, est pas directement dans la classe:
Player::Player(): isInArena(false)
{
  ...
}
_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

Pas Mieux.

1. Constructeur avec liste d'initialisation
Player::Player () : isInArena = false {
}

2. Constructeur
Player::Player () {
    
isInArena = false;


}
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Correctif:

"
1. Constructeur avec liste d'initialisation
Player::Player () : isInArena = false {
}"


à remplacer par:
Player::Player () : isInArena(false)

{}


On utilise des constructeurs et non des opérateurs ici.

Pk ces incolades systématiquement apres le nom de la fonction ? "Player::Player() {"

Tu trouves pas ca insupportable ? le fait de bas voir ou commnence la fonction d'un seul coup d'oeil.