class Namespace::Class;
Pourquoi dois-je faire cela?:
namespace Namespace {
class Class;
}
À l'aide de VC ++ 8.0, le compilateur émet:
erreur C2653: 'Namespace': n'est pas un nom de classe ou d'espace de noms
Je suppose que le problème ici est que le compilateur ne peut pas dire s'il Namespace
s'agit d'une classe ou d'un espace de noms? Mais pourquoi est-ce important puisqu'il ne s'agit que d'une déclaration anticipée?
Existe-t-il un autre moyen de déclarer en avant une classe définie dans un espace de noms? La syntaxe ci-dessus donne l'impression que je "rouvre" l'espace de noms et étend sa définition. Et si Class
n'étaient pas réellement définis dans Namespace
? Cela entraînerait-il une erreur à un moment donné?
A::B
le A
est un identifiant d'espace de noms au lieu d'un nom de classe?
Namespace
soit une classe ou un espace de noms. Ne vous approchez pas de la possibilité de déclencher une guerre des flammes du langage sur la syntaxe.