Menu
Coddy logo textTech

Namespaces e Escopo

Parte da seção Programação Orientada a Objetos do Journey de C++ da Coddy — lição 4 de 104.

Namespaces agrupam códigos relacionados e evitam conflitos de nomenclatura. O operador de resolução de escopo :: acessa itens dentro de um namespace.

Criando um namespace

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

Acessando com resolução de escopo ::

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

Usando a diretiva para evitar digitar o namespace todas as vezes

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

O namespace std

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

Namespaces organizam o código e evitam colisões de nomes. O namespace std contém todos os recursos da biblioteca padrão do C++, como cout, cin, string e endl.

challenge icon

Desafio

Médio

Crie funções dentro do namespace MathTools:

  • add(int a, int b) — retorna a soma
  • multiply(int a, int b) — retorna o produto

Declare-as em MathTools.h e implemente-as em MathTools.cpp.

Folha de consulta

Namespaces agrupam códigos relacionados e evitam conflitos de nomenclatura. O operador de resolução de escopo :: acessa itens dentro de um namespace.

Criando um namespace:

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

Acessando com a resolução de escopo :::

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

Usando a diretiva para evitar digitar o namespace todas as vezes:

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

O namespace std contém todos os recursos da biblioteca padrão do C++, como cout, cin, string e endl:

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

Experimente você mesmo

#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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos