Classe mutuellement liées (pas très clair ce titre...)
4 réponses
Miguel
Bonjour,
je pose une question qui a déjà été posée sur ce groupe je crois, mais je ne
me souviens pas de la réponse et je n'arrive retrouver pas mon bonheur, je
vais donc remettre ca, désolé...
Je voudrais savoir comment déclarer 2 classes qui s'utilisent l'une l'autre
dans un même fichier source
Exemple:
class Point
{
protected:
int l;
int c;
public:
//...
Point operator+(Vect v); //renvoie l'image par la translation de
vecteur v
};
class Vect
{
protected:
int dl;
int dc;
public:
//...
Vect(Point orig, Point dest); //construit le vecteur à partir de 2
points
};
J'ai évidemment un message d'erreur qui me dit que le type Vect n'est pas
défini et tout...
Je cherche une solution à ce problème, si toutefois il en existe une...
Merci d'avance
Miguel
public: //... Point operator+(Vect v); //renvoie l'image par la translation d e vecteur v };
class Vect { protected: int dl; int dc;
public: //... Vect(Point orig, Point dest); //construit le vecteur à partir de 2 points };
Comme cela, ça devrait aller.
Greg
Miguel
class Vect;
class Point { protected: int l; int c;
public: //... Point operator+(Vect v); //renvoie l'image par la translation de vecteur v };
class Vect { protected: int dl; int dc;
public: //... Vect(Point orig, Point dest); //construit le vecteur à partir de 2 points };
Comme cela, ça devrait aller.
Ca marche impec', cependant on ne peut pas utiliser les membres de Vect dans des fonctions inline (ce qui n'est pas très grave, c'est juste pour l'anecdote) Merci
class Vect;
class Point
{
protected:
int l;
int c;
public:
//...
Point operator+(Vect v); //renvoie l'image par la translation de
vecteur v
};
class Vect
{
protected:
int dl;
int dc;
public:
//...
Vect(Point orig, Point dest); //construit le vecteur à partir de 2
points
};
Comme cela, ça devrait aller.
Ca marche impec', cependant on ne peut pas utiliser les membres de Vect dans
des fonctions inline (ce qui n'est pas très grave, c'est juste pour
l'anecdote)
Merci
public: //... Point operator+(Vect v); //renvoie l'image par la translation de vecteur v };
class Vect { protected: int dl; int dc;
public: //... Vect(Point orig, Point dest); //construit le vecteur à partir de 2 points };
Comme cela, ça devrait aller.
Ca marche impec', cependant on ne peut pas utiliser les membres de Vect dans des fonctions inline (ce qui n'est pas très grave, c'est juste pour l'anecdote) Merci
Gregoire Mercier
A tout hasard, essaie :
class Vect;
class Point { protected: int l; int c;
public: //... Point operator+(Vect v); //renvoie l'image par la translation d e vecteur v
int foo( Vect v );
};
class Vect { protected: int dl; int dc;
public: //... Vect(Point orig, Point dest); //construit le vecteur à partir de 2 points