J'ai besoin de transmettre, déclarer une classe dans mon dossier d'en-tête, comme ceci:Pourquoi ne puis-je pas transmettre une fonction statique?
class MyStaticClass;
Je comprends pourquoi on ne peut pas déclarer avant-données membres de cette classe. J'avais l'habitude de penser que vous pouviez cependant déclarer des fonctions. Je voudrais déclarer une fonction statique de cette classe, comme ceci:
class MyStaticClass;
static int MyStaticClass::AddTwoNumbers(const int a, const int b);
Cela me donne une erreur de compilation si:
error C2027: use of undefined type 'MyStaticClass'
Pourquoi cela peut-il pas être fait? Ou y a-t-il un moyen secret de le faire après tout?
Pourquoi? Vous n'avez pas besoin de fournir une déclaration avant d'une fonction de membre de classe. Vous devez juste vous assurer que la définition de classe est dans la portée avant de l'utiliser. – EJP
Dans le projet sur lequel je travaille, je ne peux pas simplement inclure l'en-tête du fichier dont j'ai besoin, pour des raisons. Par conséquent je voudrais simplement le déclarer en avant, et l'avoir lié par l'éditeur de liens. – Yellow
Pour être en mesure de dire 'SomeType :: Anything' vous avez besoin d'une définition complète de' SomeType'. – juanchopanza