কম্পিউটার টিউটোরিয়াল

C++-এ নেমস্পেস (Namespace)


একটি পরিস্থিতি বিবেচনা করুন, যখন একই ক্লাসে একই নামের দুজন ব্যক্তি রয়েছে, যাদের নাম জারা। যখনই আমাদের তাদের আলাদা করতে হয়, নিশ্চিতরূপে আমাদের তাদের নামের পাশাপাশি কিছু অতিরিক্ত তথ্য ব্যবহার করতে হবে, যেমন এলাকা যদি তারা ভিন্ন এলাকায় থাকে অথবা তাদের মা বা বাবার নাম, ইত্যাদি।

একই পরিস্থিতি আপনার C++ অ্যাপ্লিকেশনে ও হতে পারে। উদাহরণস্বরূপ, আপনি কিছু কোড লিখছেন যাতে xyz() নামে একটি ফাংশন আছে এবং আরেকটি লাইব্রেরি উপলব্ধ যাতে একই xyz() ফাংশন আছে। এখন কম্পাইলার কোনো উপায়ে জানতে পারছে না যে আপনার কোডের মধ্যে আপনি xyz() ফাংশনের কোন ভার্সনকে রেফার করছেন।

এই সমস্যা দূর করার জন্য এবং একই নামে উপলব্ধ সাদৃশ্য ফাংশন, ক্লাস, ভেরিয়েবল ইত্যাদি আলাদা করতে নেমস্পেস ডিজাইন করা হয়েছে। নেমস্পেস ব্যবহার করে, আপনি সেই কনটেক্সট ডিফাইন করতে পারেন যাতে নামগুলো ডিফাইন করা হয়। মূলত, একটি নেমস্পেস একটি স্কোপ ডিফাইন করে।

নেমস্পেস ডিফাইন করা

একটি নেমস্পেস ডেফিনিশন namespace কীওয়ার্ড দিয়ে শুরু হয় তারপর নেমস্পেসের নাম নিচের মত করে −

namespace namespace_name {    // কোড ডিক্লেরেশন }

নেমস্পেস-ইনাবল্ড ভার্সন অফ ফাংশন বা ভেরিয়েবল কল করতে, নেমস্পেসের নাম প্রিপেন্ড (::) করুন নিচের মত করে −

name::code; // code হতে পারে ভেরিয়েবল বা ফাংশন।

উদাহরণ

#include <iostream> using namespace std; // প্রথম নেমস্পেস namespace first_space {    void func() {       cout << "first_space-এর ভিতরে" << endl;    } } // দ্বিতীয় নেমস্পেস namespace second_space {    void func() {       cout << "second_space-এর ভিতরে" << endl;    } } int main () {    // প্রথম নেমস্পেস থেকে ফাংশন কল।    first_space::func();    // দ্বিতীয় নেমস্পেস থেকে ফাংশন কল।    second_space::func();    return 0; }

আউটপুট

first_space-এর ভিতরে second_space-এর ভিতরে

  1. C++-এ নেমস্পেস কি নেস্টেড হয়তে পারে?

  2. C++-এ 'using namespace std' এর অর্থ কী?

  3. PHP নেম রেজোলিউশন রুলস

  4. PHP নেমস্পেস ওভারভিউ