কম্পিউটার

C++ এ 'নেমস্পেস std ব্যবহার করা' মানে কি?


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

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

একটি নেমস্পেস এই অসুবিধা কাটিয়ে ওঠার জন্য ডিজাইন করা হয়েছে এবং বিভিন্ন লাইব্রেরিতে উপলব্ধ একই নামের একই ধরনের ফাংশন, ক্লাস, ভেরিয়েবল ইত্যাদিকে আলাদা করার জন্য অতিরিক্ত তথ্য হিসেবে ব্যবহার করা হয়। নেমস্পেস ব্যবহার করে, আপনি যে প্রেক্ষাপটে নাম সংজ্ঞায়িত করা হয়েছে তা নির্ধারণ করতে পারেন। সংক্ষেপে, একটি নামস্থান একটি সুযোগকে সংজ্ঞায়িত করে।

C++ এর একটি স্ট্যান্ডার্ড লাইব্রেরি রয়েছে যেটিতে সাধারণ কার্যকারিতা রয়েছে যা আপনি কন্টেনার, অ্যালগরিদম ইত্যাদির মতো আপনার অ্যাপ্লিকেশনগুলি তৈরি করতে ব্যবহার করেন৷ যদি এইগুলির দ্বারা ব্যবহৃত নামগুলি খোলা থাকে, উদাহরণস্বরূপ, যদি তারা বিশ্বব্যাপী একটি সারি শ্রেণী সংজ্ঞায়িত করে থাকে , আপনি বিবাদ ছাড়া একই নাম আবার ব্যবহার করতে পারবেন না। তাই তারা এই পরিবর্তন ধারণ করার জন্য একটি নামস্থান, std তৈরি করেছে।

নেমস্পেস স্টেটমেন্ট ব্যবহার করার মানে হল যে স্কোপে এটি উপস্থিত রয়েছে, std namespace-এর অধীনে সমস্ত জিনিসগুলিকে উপসর্গ ছাড়াই উপলভ্য করুন std::তাদের প্রতিটির আগে৷

যদিও এই অভ্যাসটি সংক্ষিপ্ত উদাহরণ কোড বা তুচ্ছ প্রোগ্রামের জন্য ঠিক আছে, সমগ্র std নেমস্পেসকে গ্লোবাল নেমস্পেসে টেনে আনা ভালো অভ্যাস নয় কারণ এটি নেমস্পেসের উদ্দেশ্যকে হারায় এবং নাম সংঘর্ষের দিকে নিয়ে যেতে পারে। (প্রাথমিকভাবে কোনো নামের সংঘর্ষ না থাকলেও, প্রকল্পে আরও কোড, লাইব্রেরি ইত্যাদি যোগ করায় রক্ষণাবেক্ষণের সময় সেগুলি ক্রপ হতে পারে।) এই পরিস্থিতিকে সাধারণত নামস্থান দূষণ বলা হয়।


  1. এক্সটেন্ডেড নেটওয়ার্ক মানে কি?

  2. VGA মানে কি?

  3. LTE মানে কি?

  4. SNMP মানে কি?