Donc, j'ai 2 classes appelons-la classe A et B qui à l'intérieur de ces classes ont une référence les uns pour les autres comme arguments d'une fonction. Lorsque je tente de transmettre le déclarer comme ceci:Transférer les classes déclarées, redéfinition de la classe
// A.h (Header guarded)
namespace ns {
class B { // Attempt to forward declare B
public:
int getRand();
};
class A {
public:
float a, b;
void aFunc(B &b);
};
}
// B.h (Header guarded)
namespace ns {
class A { // Attempt to forward declare A
public:
float a, b;
};
class B {
public:
void bFunc(A &a);
int getRand();
};
}
La chose est, quand je fais cela, je suis 'class' type redefinition
erreur. J'ai cherché la solution et je n'ai toujours pas trouvé de solution. Est-ce que je fais ça bien? Ce que je suppose que je ne suis pas, pouvez-vous me dire où j'ai fait mal ici?
Ce n'est pas une déclaration avant que vous avez là! 'la classe B;' serait. – jrok
@jrok hmm, mais que se passe-t-il si j'ai besoin d'accéder aux variables de B à partir de A? Sans cela, il génèrerait une erreur qui est '' type incomplet non autorisé'' – Greffin28
Cela dépend des classes. Dites-nous en plus sur eux et que voulez-vous accomplir. – jrok