Menu
Coddy logo textTech

Namespaces & Scope

Part of the Object Oriented Programming section of Coddy's C++ journey — lesson 4 of 104.

Namespaces group related code together and prevent naming conflicts. The :: scope resolution operator accesses items inside a namespace.

Creating a namespace

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

Accessing with scope resolution ::

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

Using directive to avoid typing the namespace each time

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

The std namespace

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

Namespaces organize code and prevent naming collisions. The std namespace contains all C++ standard library features like cout, cin, string, and endl.

challenge icon

Challenge

Medium

Create functions inside the MathTools namespace:

  • add(int a, int b) — returns the sum
  • multiply(int a, int b) — returns the product

Declare them in MathTools.h and implement in MathTools.cpp.

Cheat sheet

Namespaces group related code together and prevent naming conflicts. The :: scope resolution operator accesses items inside a namespace.

Creating a namespace:

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

Accessing with scope resolution :::

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

Using directive to avoid typing the namespace each time:

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

The std namespace contains all C++ standard library features like cout, cin, string, and endl:

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

Try it yourself

#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 iconTest yourself

This lesson includes a short quiz. Start the lesson to answer it and track your progress.

All lessons in Object Oriented Programming