Home>>Dichiarazione anticipata di una classe all'interno di namespace

La dichiarazione anticipata è un meccanismo per ridurre il numero di file inclusi nei file di intestazione. Ma qual'è la sintassi corretta per dichiarare anticipatamente una classe che si trova all'interno di un dato namespace?

Utilizzando la seguente dichiarazione:

class A::B::ClassName

il compilatore genera un errore del tipo:

namespace "A::B" has no tag member named "CClassName"

Esistono due modi per risolvere il problema. Il primo consiste nel definire il name space utilizzando le parole chiave using namespace e successivamente dichiarare la classe.

[code=CPP;ln=on]using namespace A::B;
class ClassName;[/code]

Il secondo metodo, invece, consiste nel deifinire la dichiarazione anticipata come segue:

namespace A {
   namespace B {
      class ClassName
}};
La seconda alternativa è preferibile poiché l'utilizzo delle parole chiave using namespace all'interno di un file di inclusione può avere effetti collaterali anche negli altri file di intestazione che lo includono.


Aggiungi commento




  Country flag
biuquote
  • Commento
  • Anteprima
Loading


Calendario

<<  febbraio 2012  >>
lumamegivesado
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar

Archivio

Licenza d'uso
Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati mediante:

Licenza Creative Common