using namespace X;
se llama using directive y puede aparecer sólo en función de espacio de nombres y alcance, pero no ámbito de clase. Entonces, lo que estás tratando de hacer no es posible en C++. Lo mejor que puede hacer es escribir la directiva de uso en el alcance del espacio de nombres de esa clase, que puede no ser deseable.
Pensándolo bien, sin embargo, el análisis de sus palabras,
Suponga que tiene una clase de C++. Y hay un espacio de nombres que debería ser visible solo dentro de mi clase. ¿Qué hacer para eso?
Sugiero algo como lo siguiente, que no estoy seguro es lo que quieres.
class A
{
public:
void Method1();
void Method2();
void Method3();
private:
class B
{
//public static functions here, instead of namespace-scope
// freestanding functions.
//these functions will be accessible from class A(and its friends, if any)
//because B is private to A
};
};
¿Qué quiere decir exactamente por visible? Los espacios de nombres no son algo así como privado/público. – KillianDS
Una opción es poner la clase * dentro * del espacio de nombres. Si depende tanto de ese espacio de nombres, ¿por qué está afuera? –
Posible duplicado de [¿Por qué no puedo poner una declaración de "uso" dentro de una declaración de clase?] (Https://stackoverflow.com/questions/2134844/why-cant-i-put-a-using-declaration-inside -a-class-declaration) –