namespaces - המשך
 
כעת, אם קיימות יותר מפונקציה אחת בשם CollectGarbage, המהדר לא יידע לאיזו מהן לקרוא, לכן נשתמש גם בשם ה-namespace:

#include <drawMap.h>

void Sample()
{
 drawMaps::CollectGarbage();
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

שיטת ה-namespaces עובדת גם עבור כפילות בשמות של מחלקות.
הרעיון של namespaces מזכיר מעט הגדרת מחלקה בתוך מחלקה. כאשר אנו מגדירים מחלקה בתוך מחלקה, הפנייה למחלקה הפנימית מתבצעת עם שיוך למחלקה החיצונית.
כל זמן שפונקציות בעלות אותו השם מוגדרות ב-namespace שונים, שיטה זו תעבוד.
למעשה כל מחלקה, פונקציה גלובלית ומשתנה גלובלי שייכים ל-namespace מסוים. אם לא שייכנו אותם ל-namespace ספציפי, הם ישתייכו ל-namespace הגלובלי.
כעת נניח שבתוכנית יש מספר פונקציות בשם CollectGarbage אך לאורך כל התוכנית אתה קורא רק לפונקציה CollectGarbage שנמצאת ב-drawMaps, ולא לאף אחת אחרת.
במקרה זה ניתן להשתמש בשיטה הבאה כדי להגיד למהדר לאיזו CollectGarbage אתה קורא:

#include <drawMap.h>

using namespace drawMaps;

void Sample()
{
 CollectGarbage();
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

כתיבה זו מורה למהדר להשתמש גם ב-namespace drawMaps כדי למצוא פונקציות.
כתיבה קצת שונה לאותה הפעולה היא:

#include <drawMap.h>

using drawMaps::CollectGarbage;

void Sample()
{
 CollectGarbage();
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

ומשמעותה שמשתמשים באלמנט אחד מה-namespace הזה.