Problème classe

Résolu
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007 - 25 mars 2007 à 20:35
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007 - 25 mars 2007 à 22:07
Bonjour, voici mon problème:

J'ai deux classe, une classe A et une classe B:

class A
{
public :
A();
virtual ~A();
int PosX(); //Cette fonction retourne Posx.
private:
int Posx;
};

jusqu'à la pas de problème, j'ai une fonction qui retourne ma variable privée :posx.

Ensuite en classe B j'ai :

class B
{
public:
B();
virtual ~B();

void SaveMap();
}

A partir de cette classe B, je dois lire dans un fichier une variable et la mettre dans la variable Posx
de ma classe A, je fais donc :

void LoadMap(string MapName)
{
ifstream Map;

Map.open(MapName.data(), ios::binary); //On ouvre le fichier
Map >> A->PosX();

Map.close();
}

Mais j'ai une erreur lors de la compilation :
error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int' (or there is no acceptable conversion)

Je comprend un peu l'erreur mais je n'arrive pas à la régler.

Merci de votre aide.

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
25 mars 2007 à 22:06
A->PosX() n'est pas une l-value (tu ne peux pas l'affecter). Par exemple tu ne peux pas faire A->PosX()=2;
Il faut passer par une variable temporaire:

int tmp;
Map >> tmp;
A->SetPosX(tmp);

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
25 mars 2007 à 20:37
Zut je me suis trompé, dans la classe B j'ai : void LoadMap(string MapName);

et ma fonction void B::LoadMap(string MapName)
{
ifstream Map;

Map.open(MapName.data(), ios::binary); //On ouvre le fichier
Map >> A->PosX();

Map.close();
}
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
25 mars 2007 à 22:07
Alala je suis trop bête, j'aurai dû y pensé ><.

Merci à toi vecchio.
0
Rejoignez-nous