এই বিভাগে আমরা C++ এ নেমস্পেস এবং ক্লাসের মধ্যে পার্থক্যগুলি দেখব। নামস্থান এবং ক্লাস দুটি ভিন্ন ধারণা। ক্লাস হল ডেটাটাইপ। ক্লাসগুলি মূলত কাঠামোর বর্ধিত সংস্করণ। ক্লাসে ডেটা মেম্বার এবং সদস্য হিসাবে ফাংশন থাকতে পারে, তবে নেমস্পেসগুলিতে ভেরিয়েবল এবং ফাংশনগুলিকে একটিতে গোষ্ঠীবদ্ধ করে থাকতে পারে।
নামস্থান বস্তু হিসাবে তৈরি করা যাবে না। এই ধারণাটি একই ধরনের ফাংশন, ক্লাস, ভেরিয়েবল ইত্যাদি আলাদা করার জন্য অতিরিক্ত তথ্য হিসেবে ব্যবহার করা হয়। ভেরিয়েবল, একই নামের ফাংশন বিভিন্ন নেমস্পেসে রাখা যেতে পারে।
এখন আসুন নামস্থান এবং ক্লাসের কিছু গুরুত্বপূর্ণ পার্থক্য তুলে ধরুন।
-
নামস্থানগুলি শনাক্তকারীর একটি গোষ্ঠী তৈরি করতে ব্যবহৃত হয় যাতে তারা সংঘর্ষ না করে। ক্লাস ব্যবহার করে, আমাদের সেই ক্লাসের একটি উদাহরণ তৈরি করতে হবে, কিন্তু নামস্থানের জন্য এটি সত্য নয়৷
-
নামস্থানের জন্য আমরা 'ব্যবহার করে' ঘোষণা ব্যবহার করি। ক্লাসের জন্য এটি সম্ভব নয় যদি না আমরা এটি থেকে উদ্ভূত।
-
আমরা নামস্থান পুনরায় খুলতে পারি এবং অনুবাদ ইউনিট জুড়ে আরও উপাদান যোগ করতে পারি। এটি ক্লাস ব্যবহার করে করা যাবে না।
namespace my_namespace { int function1(); } namespace my_namespace { int function1(); }
-
ক্লাসের জন্য নিম্নলিখিত কোডটি ঠিক নয়:
class my_class { int function1(); }; class my_class { int function1(); };
-
আমরা নামবিহীন নামস্থান ব্যবহার করতে পারি, এটি ঠিক আছে, কিন্তু আমরা নামবিহীন ক্লাস ব্যবহার করতে পারি না যা ত্রুটি তৈরি করবে৷
namespace{ //Legal int function1(); }; class { //create error int function1(); };