Question

Je le bit suivant de l'héritage du code C ++ qui ne compile pas:

#include <stdio.h>
#include <iostream>

extern ostream *debug;

GCC (g ++) se plaint: "initialiseur attendue avant « * » jeton"

En regardant autour, il semble plus fréquent de les déclarer comme des références externes, comme ceci:

extern ostream& debug;

Pourquoi est-un pointeur non valide, mais une référence est dans cette situation?

SOLUTION:

Le vrai problème, comme mentionné ci-dessous est que le std :: spécificateur d'espace de noms est manquant. Apparemment, ce qui est courant dans plus de code C ++.

Était-ce utile?

La solution

Oui, vous pouvez déclarer un pointeur à l'aide extern. Votre erreur est plus probable que vous avez oublié de se qualifier en utilisant std:::

// note the header is cstdio in C++. stdio.h is deprecated
#include <cstdio>
#include <iostream>

extern std::ostream *debug;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top