Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การขยาย Namespace และ Unnamed Namespace ใน C++

1. Extending Namespace

สามารถเปิด namespace เดียวกันหลายครั้งได้ สมาชิกจะรวมกัน

namespace MyNS { int a = 10; }
namespace MyNS { int b = 20; } // ขยาย namespace เดียวกัน

// ใช้งาน
cout << MyNS::a << MyNS::b; // 10 20

2. Unnamed (Anonymous) Namespace

Namespace ไม่มีชื่อ ใช้สำหรับ:

  • จำกัด visibility ภายใน translation unit (internal linkage)
  • แทนการใช้ static สำหรับ global variables/functions
  • Compiler สร้างชื่อ unique ให้อัตโนมัติ
namespace { // unnamed
    int x = 10;
}
int main() { cout << x; } // ใช้ได้โดยตรงในไฟล์นี้เท่านั้น

Unnamed namespace เป็นวิธีที่ทันสมัยและแนะนำมากกว่า static global