C++-এ একই নামে একাধিক নেমস্পেস ব্লক লিখলে সেগুলো স্বয়ংক্রিয় একসাথে জড়ে (extend) যায়। আবার নামহীন (unnamed/anonymous) নেমস্পেস ফাইল-লোকাল আইডেন্টিফায়ার তৈরি করতে ব্যবহৃত হয়।
নেমস্পেস এক্সটেনশন
#include <iostream>
using namespace std;
namespace my_namespace {
int my_var = 10;
}
namespace my_namespace { // এক্সটেনশন
int my_new_var = 40;
}
int main() {
cout << "my_var: " << my_namespace::my_var << endl;
cout << "my_new_var: " << my_namespace::my_new_var << endl;
return 0;
}
আউটপুট
my_var: 10 my_new_var: 40
আননেমড (Anonymous) নেমস্পেস
- নাম নেই, কম্পাইলার নিজে یونিক নাম দেয়।
- শুধু একই ট্রান্সলেশন ইউনিট (ফাইল) থেকে অ্যাকসেসযোগ্য।
staticগ্লোবাল ভেরিয়েবলের আধুনিক বিকল্প।
#include <iostream>
using namespace std;
namespace { // unnamed namespace
int my_var = 10;
}
int main() {
cout << "my_var: " << my_var << endl; // সরাসরি অ্যাকসেস
return 0;
}
আউটপুট
my_var: 10
ব্যবহার: লাইব্রেরি ইন্টারনাল ডিটেইল লুকাতে, সিম্বল কনফ্লিক্ট এড়াতে, এবং ইন্টারনাল লিঙ্কেজ নিশ্চিত করতে।