2012-05-06 12 views
10
#include <iostream> 
#include <string> 
using namespace std; 

string a; 

namespace myNamespace 
{ 
    string a; 
    void output() 
    { 
     cout << a << endl; 
    } 
} 

int main() 
{ 
    a = "Namespaces, meh."; 
    myNamespace::a = "Namespaces are great!"; 
    myNamespace::output(); 
} 

El resultado es "¡Los espacios de nombres son geniales!". Entonces, ¿hay alguna forma de acceder a la cadena global a dentro del espacio de nombres myNamespace en lugar de solo el local?C++ acceder a variables/objetos globales en un espacio de nombres con una variable/objeto con el mismo nombre

Respuesta

15

De esta manera:

void output() 
{ 
    cout << ::a << endl; //using :: = the global namespace 
} 
+1

ver aquí para resultado: http://ideone.com/3cm2n –

Cuestiones relacionadas