es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo podemos acceder a un espacio de nombres sin nombre fuera del archivo en el que se crea?

Estaba leyendo en línea sobre los espacios de nombres y leí sobre los espacios de nombres sin nombre. Leí que los espacios de nombres sin nombre solo son accesibles dentro del archivo en el que se crearon. Pero cuando lo intenté por mi cuenta, no funcionó así. ¿Cómo es posible eso?

Esto es lo que hice:

archivo1:

#include <iostream>
using namespace std;

namespace space1 {
int a = 10;
void f() {
cout << “en espacio1 del código 1” << endl;
};
}

namespace {
int x = 20;
void f() {
cout << “en espacio sin nombre” << endl;
}
}

archivo2: donde accedí al espacio de nombres desde archivo1

#include <iostream>
#include "codigo1.cpp"
using namespace std;

int main() {
space1::f();
cout << space1::a;
cout << x << endl;
f();

return 0;

}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que el espacio de nombres sin nombre en el archivo 1 esté siendo accedido en el archivo 2 porque ambos archivos están siendo compilados juntos. Los espacios de nombres sin nombre aún se tratan como si tuvieran nombres únicos, aunque no pueden ser accedidos desde otros archivos. Sin embargo, si los dos archivos están siendo compilados juntos, el compilador podría tratarlos como si fueran parte del mismo archivo, lo que permitiría el acceso al espacio de nombres sin nombre. Es importante tener en cuenta que este comportamiento no está garantizado y podría variar según el compilador utilizado.

Comments are closed.