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

Espacios de nombres en C++

3 ejercicios

Acerca de Espacios de nombres

Una forma 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 ámbito ::.

El siguiente ejemplo muestra el uso de dos funciones foo diferentes. Se usan juntas al prefijarlas con 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 con un anidamiento profundo 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 conservar algo de 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 ventana o pestaña nueva

Aprende Espacios de nombres