class Namespace::Class;
Perché devo farlo ?:
namespace Namespace {
class Class;
}
Utilizzando VC ++ 8.0, il compilatore genera:
errore C2653: "Spazio dei nomi": non è un nome di classe o di spazio dei nomi
Presumo che il problema qui sia che il compilatore non può dire se Namespace
è una classe o uno spazio dei nomi? Ma perché è importante dato che è solo una dichiarazione in avanti?
C'è un altro modo per dichiarare in avanti una classe definita in alcuni spazi dei nomi? La sintassi sopra sembra che sto "riaprendo" lo spazio dei nomi e ne estendo la definizione. E se Class
non fossero stati effettivamente definiti in Namespace
? Ciò comporterebbe un errore ad un certo punto?
A::B
la A
è un identificatore spazio dei nomi al posto di un nome di classe?
Namespace
tratta di una classe o di uno spazio dei nomi. Basta non avvicinarsi affatto al suggerimento di una possibilità di iniziare una guerra di fiamma di linguaggio sulla sintassi.