class Namespace::Class;
Pourquoi dois-je faire ça ?
namespace Namespace {
class Class;
}
En utilisant VC++ 8.0, le compilateur pose des problèmes :
error C2653 : 'Namespace' : n'est pas un nom de classe ou d'espace de nom
Je suppose que le problème ici est que le compilateur ne peut pas dire si Namespace
est une classe ou un espace de nom ? Mais pourquoi cela a-t-il de l'importance puisqu'il s'agit juste d'une déclaration en avant ?
Existe-t-il un autre moyen de déclarer une classe définie dans un espace de noms ? La syntaxe ci-dessus donne l'impression de "rouvrir" l'espace de noms et d'étendre sa définition. Et si Class
n'ont pas été réellement définis dans Namespace
? Cela entraînerait-il une erreur à un moment donné ?