2011-12-25 11 views

Respuesta

30

¿por qué según los planes de su espacio de nombres actual no hay necesidad de para eso, puede escribir fácilmente:

namespace myNamespace { 
    int myInt = 33; 
    void myFunc() { 
    myInt = 33; 
    } 
}; 

Independientemente de las variables declaradas (como, por ejemplo, myInt global), las variables de este ámbito se utilizarán de forma predeterminada.

Sin embargo, si desea cambiar el nombre, puede utilizar técnicas IDE como reemplazar o refactorizar.

18

Buena pregunta. No, no hay nada como esto.

Por otra parte, prestar atención a que myNamespace::myInt ni siquiera es inequívoca en el caso de espacios de nombres anidados (Digamos que tienes el caso enrevesado de namespace myNamespace { namespace myNamespace { … } } Para estar en el lado seguro es necesario utilizar el espacio de nombres completo:.

.?
::myNamespace::myInt = 33; 

Cuando el prefijo :: se refiere al espacio de nombres global

22

No, no lo hay, pero si realmente quieres hacer algo así puedes fingirlo.

namespace myNamespace { 
    namespace _ns = ::myNamespace; 
    int myInt; 
    void myFunc() { 
    _ns::myInt = 66; 
    } 
} 

Si cambia myNamespace, sólo es necesario cambiar _ns para que coincidan.

Además, el punto y coma que sigue al espacio de nombres es superfluo.

+1

¡Siempre me olvido de la asignación del espacio de nombres! Ese es un truco que necesito recordar. – fluffy

Cuestiones relacionadas