Domanda

posso inoltrare dichiarare una funzione in uno spazio dei nomi in questo modo:

void myNamespace::doThing();

che è equivalente a:

namespace myNamespace
{
  void doThing();
}

Per inoltrare dichiarare una classe in uno spazio dei nomi:

namespace myNamespace
{
  class myClass;
}

C'è un modo più breve per fare questo? Stavo pensando qualcosa lungo le linee di:

class myNamespace::myClass;
È stato utile?

Soluzione

No, ma con un po 'di riformattazione

namespace myNamespace { class myClass; }

non è molto peggio di

class myNamespace::myClass;

Altri suggerimenti

Ho voluto fare la stessa cosa prima - non è permesso. Un membro dello spazio dei nomi deve essere dichiarato in una namespace-body. Essi possono essere "di cui" solo con l'operatore di risoluzione dell'ambito.

Vedere 3.3.5 "scope Namespace" nella norma.

  

Enti dichiarati in un namespace-corpo si dice che sono membri dello spazio dei nomi e nomi introdotte da queste dichiarazioni nella regione dichiarativa dello spazio dei nomi sono detto di essere nomi dei membri dello spazio dei nomi.

e

  

Un membro dello spazio dei nomi può anche essere indicato dopo il :: operatore di risoluzione dell'ambito (5.1) applicato al nome del suo spazio dei nomi o il nome di un namespace, che nomina dello spazio dei nomi del membro in una using-directive;

Non penso così.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top