Menu
Coddy logo textTech

Namespaces y alcance

Parte de la sección Programación Orientada a Objetos del Journey de C++ de Coddy — lección 4 de 104.

Los espacios de nombres agrupan código relacionado y evitan conflictos de nombres. El operador de resolución de ámbito :: accede a los elementos dentro de un espacio de nombres.

Creación de un espacio de nombres

namespace MathTools {
    int add(int a, int b) {
        return a + b;
    }
}

Acceso con resolución de ámbito ::

int result = MathTools::add(5, 3);  // result = 8

Uso de la directiva para evitar escribir el espacio de nombres cada vez

using namespace MathTools;
int result = add(5, 3);  // Lo mismo que MathTools::add(5, 3)

El espacio de nombres std

std::cout << "Hello" << std::endl;
// o
using namespace std;
cout << "Hello" << endl;

Los espacios de nombres organizan el código y evitan colisiones de nombres. El espacio de nombres std contiene todas las características de la biblioteca estándar de C++ como cout, cin, string y endl.

challenge icon

Desafío

Intermedio

Crea funciones dentro del espacio de nombres MathTools:

  • add(int a, int b) — devuelve la suma
  • multiply(int a, int b) — devuelve el producto

Decláralas en MathTools.h e impleméntalas en MathTools.cpp.

Hoja de referencia

Los espacios de nombres (namespaces) agrupan código relacionado y evitan conflictos de nombres. El operador de resolución de ámbito :: accede a los elementos dentro de un espacio de nombres.

Creación de un espacio de nombres:

namespace MathTools {
    int add(int a, int b) {
        return a + b;
    }
}

Acceso con resolución de ámbito :::

int result = MathTools::add(5, 3);  // result = 8

Uso de la directiva using para evitar escribir el espacio de nombres cada vez:

using namespace MathTools;
int result = add(5, 3);  // Same as MathTools::add(5, 3)

El espacio de nombres std contiene todas las características de la biblioteca estándar de C++ como cout, cin, string y endl:

std::cout << "Hello" << std::endl;
// or
using namespace std;
cout << "Hello" << endl;

Pruébalo tú mismo

#include <iostream>
#include "MathTools.h"

int main() {
    int a, b;
    std::cin >> a >> b;
    
    std::cout << "Add: " << MathTools::add(a, b) << std::endl;
    std::cout << "Multiply: " << MathTools::multiply(a, b) << std::endl;
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos