Cambo Freelance
ទំព័រដើមសេវាកម្មអត្ថបទការបង្រៀនក្រុមវគ្គបណ្តុះបណ្តាលទំនាក់ទំនង
Cambo Freelance

Professional freelance team from Cambodia delivering technology-driven solutions with cultural insight and modern expertise.

ផ្ញើសាររបស់អ្នក

ត្រៀមចាប់ផ្តើមគម្រោងរបស់អ្នក? ទំនាក់ទំនងក្រុមរបស់យើង។

ទំនាក់ទំនង

សេវាកម្ម

  • Web & Mobile Development Services
  • Graphic Design & Branding Services

តំណភ្ជាប់មានប្រយោជន៍

  • ទំព័រដើម
  • សេវាកម្ម
  • ការសិក្សា
  • អំពីយើង
  • ទំនាក់ទំនង
  • តម្លៃ

© 2026 Cambo Freelance. រក្សាសិទ្ធិទាំងអស់។

TelegramFacebookLinkedInEmail
HomeTutorialsC++C++ Namespaces
⚡C++ Tutorials

50 lessons

Beginner(21)1C++ Introduction2C++ Getting Started3C++ Syntax4C++ Output5C++ Comments6C++ Variables7C++ Data Types8C++ Constants9C++ User Input10C++ Operators11C++ Strings12C++ Math13C++ Booleans14C++ Conditions15C++ Switch16C++ Loops17C++ Break and Continue18C++ Arrays19C++ Functions20C++ References21C++ Pointers
Intermediate(19)22C++ Classes23C++ Objects24C++ Constructors25C++ Access Specifiers
Advanced(10)41C++ Smart Pointers42C++ Templates43C++ Lambda Functions44
⚡

C++ Tutorials

Lesson 32 of 50

All lessons
Beginner (21)1C++ Introduction2C++ Getting Started
26
C++ Encapsulation
27C++ Inheritance
28C++ Polymorphism
29C++ Abstraction
30C++ Files
31C++ Exception Handling
32C++ Namespaces
33C++ Structures
34C++ Enumerations
35C++ STL Introduction
36C++ Vectors
37C++ Maps
38C++ Sets
39C++ Queues
40C++ Stacks
C++ Move Semantics
45C++ Multithreading
46C++ Design Patterns
47C++ Memory Management
48C++17 Features
49C++20 Features
50C++ Performance Optimization
3
C++ Syntax
4C++ Output
5C++ Comments
6C++ Variables
7C++ Data Types
8C++ Constants
9C++ User Input
10C++ Operators
11C++ Strings
12C++ Math
13C++ Booleans
14C++ Conditions
15C++ Switch
16C++ Loops
17C++ Break and Continue
18C++ Arrays
19C++ Functions
20C++ References
21C++ Pointers
Intermediate (19)22C++ Classes23C++ Objects24C++ Constructors25C++ Access Specifiers26C++ Encapsulation27C++ Inheritance28C++ Polymorphism29C++ Abstraction30C++ Files31C++ Exception Handling32C++ Namespaces33C++ Structures34C++ Enumerations35C++ STL Introduction36C++ Vectors37C++ Maps38C++ Sets39C++ Queues40C++ Stacks
Advanced (10)41C++ Smart Pointers42C++ Templates43C++ Lambda Functions44C++ Move Semantics45C++ Multithreading46C++ Design Patterns47C++ Memory Management48C++17 Features49C++20 Features50C++ Performance Optimization
⚡C++IntermediateLesson 32 of 50CamboFreelanceJune 19, 2026

C++ Namespaces

Learn C++ namespaces to organize code and prevent name collisions. Create, nest, and use namespaces with the using directive.


Tutorials › C++ › Namespaces
Intermediate6 min readLesson 32 of 50

What is a Namespace?

A namespace groups related identifiers to prevent name collisions. This is how std::cout is organized — everything in the C++ standard library lives in the std namespace.

#include <iostream>
using namespace std;

namespace Math {
    const double PI = 3.14159265;
    double square(double x)  { return x * x; }
    double cube(double x)    { return x * x * x; }
}

namespace Geometry {
    double circleArea(double r) { return Math::PI * Math::square(r); }
}

int main() {
    cout << Math::PI              << endl;   // 3.14159265
    cout << Math::square(4)      << endl;   // 16
    cout << Geometry::circleArea(5) << endl; // 78.5398
    return 0;
}

Output:

3.14159265
16
78.5398

using Declarations

using Math::PI;       // import specific name
using namespace Math; // import all names (use sparingly)
cout << PI;           // no prefix needed

Nested Namespaces (C++17)

namespace App::Utils::String {
    bool isEmpty(const string& s) { return s.empty(); }
}
// Use: App::Utils::String::isEmpty("test")
Best Practice: Avoid using namespace std; in header files — it pollutes the global namespace of every file that includes the header. It is fine in .cpp files.

Exercise

Create two namespaces: Imperial (with milesPerHour unit) and Metric (with kmPerHour unit). Write a conversion function in each that converts to the other. Test both.

Show Solution
#include <iostream>
using namespace std;

namespace Imperial {
    double toKph(double mph) { return mph * 1.60934; }
}
namespace Metric {
    double toMph(double kph) { return kph / 1.60934; }
}

int main() {
    cout << "60 mph = " << Imperial::toKph(60) << " kph" << endl;
    cout << "100 kph = " << Metric::toMph(100) << " mph" << endl;
    return 0;
}

Quiz

  1. What problem do namespaces solve?

    • A) Slow compilation
    • B) Name collisions between identifiers from different libraries
    • C) Memory leaks
    • D) Type errors
    Answer

    B) Namespaces group identifiers to prevent conflicts.

Summary

  • Namespaces group identifiers to avoid name conflicts.
  • Access members with NamespaceName::identifier.
  • Avoid using namespace in headers.
← Previous: Exception Handling Next: Structures →
c++namespacesintermediate
PreviousLesson 31: C++ Exception HandlingNextLesson 33: C++ Structures
Back to All Tutorials