C++ ওভারলোড তুলনা অপারেটর ইন

C Obharaloda Tulana Aparetara Ina



অপারেটর ওভারলোডিং হল C++ এর একটি গুরুত্বপূর্ণ ধারণা যা আপনাকে ব্যবহারকারী-সংজ্ঞায়িত ডেটা প্রকারের সাথে কাজ করার সময় অন্তর্নির্মিত অপারেটরগুলির কার্যকারিতা অর্জন করতে দেয়। C++-এ তুলনা অপারেটর হল যে দুটি মান একে অপরের সাথে তুলনা করার জন্য আছে যেমন “==”, “!=”, “>”, “<”, “>=”, এবং “<=”। এই নিবন্ধটি উবুন্টু 20.04-এ C++-এ এই ছয়টি তুলনা অপারেটরকে ওভারলোড করার পদ্ধতি শেয়ার করবে।

উদাহরণ # 1: C++ এ “==” অপারেটরকে ওভারলোড করা:

C++ এ “==” অপারেটর ওভারলোড করার জন্য, আমরা নিম্নলিখিত C++ ক্লাস ডিজাইন করেছি:







আমাদের C++ ক্লাসের নাম হল ProductPrice। এই শ্রেণীর মধ্যে, আমাদের একটি ব্যক্তিগত সদস্য 'মূল্য' আছে। এর পরে, আমাদের কিছু পাবলিক সদস্য ফাংশন আছে। 'userInput' নামের প্রথম ফাংশনটি ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে পণ্যের মূল্য নেয়। তারপর, আমাদের কাছে C++ এ “==” অপারেটর ওভারলোড করার ফাংশন আছে। আমরা এই ফাংশনে ProductPrice ক্লাসের একটি অবজেক্ট পাস করেছি। এই ফাংশনের মধ্যে, আমাদের কাছে একটি 'if' বিবৃতি রয়েছে যা 'সত্য' প্রদান করবে যদি দুটি পণ্যের দাম সমান হয়, অন্যথায় 'মিথ্যা'।



এটি পরীক্ষা করার জন্য, আমাদের নীচের ছবিতে দেখানো ড্রাইভার ফাংশন রয়েছে:







আমাদের 'main()' ফাংশনে, আমরা প্রথমে আমাদের ক্লাসের দুটি অবজেক্ট তৈরি করেছি। তারপর, ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে দুটি পণ্যের দাম নেওয়ার জন্য আমরা দুটি বস্তুর প্রতিটির সাথে একটি করে 'ইউজারইনপুট' ফাংশনকে কল করেছি। এর পরে, দুটি মূল্য সমান হলে একটি বার্তা প্রিন্ট করার জন্য আমাদের কাছে একটি 'if' বিবৃতি রয়েছে এবং যদি না হয় তবে আরেকটি বার্তা রয়েছে৷

আমরা নিম্নলিখিত কমান্ড ব্যবহার করে এই প্রোগ্রামটি কম্পাইল করেছি:



$ g++ ComparisonOperator.cpp –o ComparisonOperator

তারপরে, আমরা নীচে দেখানো কমান্ড ব্যবহার করে এটি কার্যকর করেছি:

$ . / তুলনা অপারেটর

এই কোডটি কার্যকর করার পরে, আমাদেরকে নিম্নলিখিত ছবিতে দেখানো প্রথম পণ্যটির মূল্য লিখতে বলা হয়েছিল:

তারপরে, নীচের ছবিতে দেখানো হিসাবে আমাদের দ্বিতীয় পণ্যটির দাম লিখতে বলা হয়েছিল:

যেহেতু আমরা উভয় পণ্যের জন্য একই দাম প্রবেশ করিয়েছি, আমরা নিম্নলিখিত আউটপুটে দেখতে পাচ্ছি যে আমাদের “==” অপারেটর সফলভাবে ওভারলোড হয়েছে।

এখন, 'অন্য' বিবৃতিটির জন্য এটি পরীক্ষা করার জন্য, আমরা নীচের ছবিতে দেখানো হিসাবে দুটি ভিন্ন পণ্যের দাম লিখলাম:

উদাহরণ # 2: C++ এ “!=” অপারেটরকে ওভারলোড করা:

C++ এ “!=” অপারেটরকে ওভারলোড করার জন্য, আমরা নিম্নলিখিত C++ ক্লাস ডিজাইন করেছি:

এই প্রোগ্রামটি দেখতে অনেকটা আমাদের প্রথম উদাহরণের মতো। একমাত্র পার্থক্য হল আমরা “==” অপারেটরকে “!=” অপারেটর দিয়ে প্রতিস্থাপন করেছি।

এটি পরীক্ষা করার জন্য, আমাদের নীচের ছবিতে দেখানো ড্রাইভার ফাংশন রয়েছে:

ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে দুটি পণ্যের দাম নেওয়ার জন্য আমরা আমাদের 'প্রধান()' ফাংশনে 'ইউজারইনপুট' ফাংশনটিকে একটি একটি করে দুটি অবজেক্টের সাথে কল করেছি। এর পরে, দুটি মূল্য সমান না হলে একটি বার্তা প্রিন্ট করার জন্য আমাদের কাছে একটি 'যদি' বিবৃতি রয়েছে এবং যদি সেগুলি হয় তবে আরেকটি বার্তা রয়েছে৷

যখন আমরা দুটি ভিন্ন পণ্যের মূল্যের সাথে এই কোডটি কার্যকর করেছি, তখন আমরা বুঝতে পেরেছিলাম যে আমাদের অসমতা অপারেটর সফলভাবে ওভারলোড হয়েছে, আপনি নিম্নলিখিত চিত্র থেকে দেখতে পাচ্ছেন:

এখন, 'অন্য' বিবৃতিটির জন্য এটি পরীক্ষা করার জন্য, আমরা দুটি অনুরূপ পণ্যের দাম প্রবেশ করিয়েছি, যেমনটি নীচের ছবিতে দেখানো হয়েছে:

উদাহরণ # 3: C++ এ “>” অপারেটরকে ওভারলোড করা:

C++ এ “>” অপারেটরকে ওভারলোড করার জন্য, আমরা নিম্নলিখিত C++ ক্লাস ডিজাইন করেছি:

এই প্রোগ্রামটি আমাদের উপরের উদাহরণগুলির অনুরূপ। একমাত্র পার্থক্য হল আমরা “!=” অপারেটরকে “>” অপারেটর দিয়ে প্রতিস্থাপন করেছি।

এটি পরীক্ষা করার জন্য, আমাদের নীচের ছবিতে দেখানো ড্রাইভার ফাংশন রয়েছে:

ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে দুটি পণ্যের দাম নেওয়ার জন্য আমরা আমাদের 'প্রধান()' ফাংশনে 'ইউজারইনপুট' ফাংশনটিকে একটি একটি করে দুটি অবজেক্টের সাথে কল করেছি। এর পরে, আমাদের কাছে একটি বার্তা প্রিন্ট করার জন্য একটি 'if' বিবৃতি আছে যদি প্রথম দামটি অন্যটির থেকে বেশি হয় এবং অন্যটি না হলে আরেকটি বার্তা।

যখন আমরা দুটি ভিন্ন পণ্যের মূল্যের সাথে এই কোডটি কার্যকর করেছি, তখন আমরা বুঝতে পেরেছিলাম যে আমাদের থেকে বড় অপারেটর সফলভাবে ওভারলোড হয়েছে, আপনি নিম্নলিখিত চিত্র থেকে দেখতে পাচ্ছেন:

এখন, 'অন্য' বিবৃতিটির জন্য এটি পরীক্ষা করার জন্য, আমরা দুটি অনুরূপ পণ্যের দাম প্রবেশ করিয়েছি, যেমনটি নীচের ছবিতে দেখানো হয়েছে:

উদাহরণ # 4: C++ এ “<” অপারেটরকে ওভারলোড করা:

C++ এ “<” অপারেটরকে ওভারলোড করার জন্য, আমরা নিম্নলিখিত C++ ক্লাস ডিজাইন করেছি:

এই প্রোগ্রামটি আমাদের উপরের উদাহরণগুলির অনুরূপ। একমাত্র পার্থক্য হল আমরা “>” অপারেটরটিকে সর্বত্র “<” অপারেটর দিয়ে প্রতিস্থাপন করেছি।

এটি পরীক্ষা করার জন্য, আমাদের নীচের ছবিতে দেখানো ড্রাইভার ফাংশন রয়েছে:

ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে দুটি পণ্যের দাম নেওয়ার জন্য আমরা আমাদের 'প্রধান()' ফাংশনে 'ইউজারইনপুট' ফাংশনটিকে একটি একটি করে দুটি অবজেক্টের সাথে কল করেছি। এর পরে, প্রথম মূল্য অন্যটির থেকে কম হলে একটি বার্তা প্রিন্ট করার জন্য আমাদের কাছে একটি 'if' বিবৃতি রয়েছে এবং না হলে আরেকটি বার্তা রয়েছে৷

যখন আমরা দুটি ভিন্ন পণ্যের মূল্যের সাথে এই কোডটি কার্যকর করেছি, তখন আমরা বুঝতে পেরেছিলাম যে আমাদের অপারেটরের চেয়ে কম সফলভাবে ওভারলোড হয়েছে, আপনি নিম্নলিখিত চিত্র থেকে দেখতে পাচ্ছেন:

এখন, 'অন্য' বিবৃতিটির জন্য এটি পরীক্ষা করার জন্য, আমরা আবার দুটি ভিন্ন পণ্যের দাম প্রবেশ করিয়েছি, কিন্তু এবার, প্রথম পণ্যটির দাম দ্বিতীয়টির চেয়ে বেশি, যেমনটি নীচের ছবিতে দেখানো হয়েছে:

উদাহরণ # 5: C++ এ “>=” অপারেটরকে ওভারলোড করা:

C++ এ “>=” অপারেটর ওভারলোড করার জন্য, আমরা নিম্নলিখিত C++ ক্লাস ডিজাইন করেছি:

এটি আমাদের উপরের উদাহরণ থেকে কিছুটা ভিন্ন। এইবার অপারেটরকে ওভারলোড করার সময়, আমাদের “যদি” বিবৃতিটির মধ্যে দুটি শর্ত রয়েছে যা “||” দ্বারা পৃথক করা হয়েছে। প্রতীক এর অর্থ হল এই বিবৃতিটি পরীক্ষা করবে যে একটি পণ্যের মূল্য অন্যটির চেয়ে বেশি বা সমান কিনা।

এটি পরীক্ষা করার জন্য, আমাদের নীচের ছবিতে দেখানো ড্রাইভার ফাংশন রয়েছে:

ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে দুটি পণ্যের দাম নেওয়ার জন্য আমরা আমাদের 'প্রধান()' ফাংশনে 'ইউজারইনপুট' ফাংশনটিকে একটি একটি করে দুটি অবজেক্টের সাথে কল করেছি। এর পরে, আমাদের কাছে একটি বার্তা প্রিন্ট করার জন্য একটি 'if' বিবৃতি আছে যদি প্রথম দামটি অন্যটির চেয়ে বেশি বা সমান হয় এবং না হলে আরেকটি বার্তা।

যখন আমরা এই কোডটি দুটি ভিন্ন পণ্যের মূল্যের সাথে কার্যকর করেছি, তখন আমরা বুঝতে পেরেছি যে অপারেটরের থেকে আমাদের বেশি বা সমান সফলভাবে ওভারলোড হয়েছে, আপনি নিম্নলিখিত চিত্র থেকে দেখতে পাচ্ছেন:

এখন, 'অন্য' বিবৃতির জন্য এটি পরীক্ষা করার জন্য, আমরা প্রথম পণ্যটির দাম দ্বিতীয়টির চেয়ে কম প্রবেশ করিয়েছি, যেমনটি নীচের ছবিতে দেখানো হয়েছে:

উদাহরণ # 6: C++ এ “<=” অপারেটরকে ওভারলোড করা:

আমাদের পঞ্চম উদাহরণের মতো একই পদ্ধতি অনুসরণ করে, আমরা “<=” অপারেটরকে ওভারলোড করেছি এবং এর কোড নিম্নরূপ:

বিভিন্ন মান সহ এই প্রোগ্রামটির কার্যকরী ফলাফল নীচের চিত্রগুলিতে দেখানো হয়েছে:

উপসংহার:

এই নিবন্ধটি খুব ভালভাবে ব্যাখ্যা করেছে যে আপনি কীভাবে উবুন্টু 20.04-এ C++-এ ছয়টি তুলনা অপারেটর ওভারলোড করতে পারেন। আমরা অপারেটর ওভারলোডিংয়ের একটি সংক্ষিপ্ত পরিচয় দিয়ে শুরু করেছি, তারপরে C++ এর সমস্ত ছয়টি তুলনা অপারেটর ওভারলোড হয়েছিল। আমরা এই সমস্ত পদ্ধতি প্রদর্শনের জন্য একই ব্যবহারকারী-সংজ্ঞায়িত শ্রেণী ব্যবহার করেছি। একবার আপনি এই পদ্ধতিগুলির মধ্য দিয়ে গেলে, আপনি অন্য কোনও ব্যবহারকারী-সংজ্ঞায়িত শ্রেণীর জন্য এই তুলনা অপারেটরগুলিকে ওভারলোড করতে সক্ষম হবেন।