Tracks
/
C++
C++
/
Temario
/
Espacios de nombres
Es

Espacios de nombres en C++

3 ejercicios

Acerca de Espacios de nombres

Una manera importante de organizar el código son los espacios de nombres. Dos funciones podrían tener una colisión de nombres, que se puede resolver colocándolas en espacios de nombres distintos. Los espacios de nombres se pueden anidar, lo que puede ayudar a estructurar grandes bases de código. Se accede a los espacios de nombres mediante el operador de resolución de scope ::.

En el ejemplo siguiente se muestra el uso de dos funciones foo distintas. Se usan juntas anteponiendo sus respectivos espacios de nombres.

namespace my_ns {
    int foo() {
        return 44;
    }
    namespace my_inner_ns {
        int baz() {
            return 90;
        }
    }
}
namespace my_other_ns {
    int foo() {
        return -2;
    }
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
Advanced

Los espacios de nombres anidados en profundidad pueden resultar demasiado verbosos. Es posible eliminar esa verbosidad con una importación de espacio de nombres mediante using. Esto traslada todos los nombres al espacio de nombres global. Para mantener cierta diferenciación, los alias pueden ser útiles.

int my_other_result{my_ns::my_inner_ns::baz()};

using namespace my_ns::my_inner_ns; // importing the complete namespace
int also_other_result{baz()};

namespace m = my_ns; // setting an alias
namespace o = my_other_ns;

int also_my_result{m::foo() + o::foo() * m::my_inner_ns::baz()};
Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Espacios de nombres