ধরুন আমরা এমন একটি শ্রেণী তৈরি করতে চাই যাতে দুটি পূর্ণসংখ্যা, দুটি ফ্লোট এবং দুটি স্ট্রিং যোগ করা যায় (স্ট্রিং সংযোজন মূলত স্ট্রিংকে সংযুক্ত করে)। প্রথমে ইনপুট হিসাবে আমরা একটি সংখ্যা নিই n বিভিন্ন ক্রিয়াকলাপ রয়েছে। প্রতিটি অপারেশনে প্রথম আইটেমটি হল প্রকার [int, float, string] এবং দ্বিতীয় এবং তৃতীয় দুটি অপারেন্ড। তাই প্রতিটি লাইনে তিনটি উপাদান থাকবে। আমাদের সেগুলি পড়তে হবে এবং উল্লিখিত ক্রিয়াকলাপগুলি করতে হবে৷
সুতরাং, যদি ইনপুট মত হয়
5 int 5 7 int 6 9 float 5.25 9.63 string hello world string love C++
তাহলে আউটপুট হবে
12 15 14.88 helloworld loveC++
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
ক্লাস টেমপ্লেট সহ AddItems নামক একটি ক্লাস সংজ্ঞায়িত করুন। এটিতে দুটি ফাংশন add() এবং concatenate() রয়েছে। add() পূর্ণসংখ্যা এবং ফ্লোট যোগ করবে এবং concatenate() স্ট্রিংকে সংযুক্ত করবে।
-
মূল পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন
-
আরম্ভ করার জন্য i :=0, যখন i
-
প্রকার :=বর্তমান প্রকার
-
যদি টাইপ "float" এর মত হয়, তাহলে:
-
দুটি অপারেন্ড e1 এবং e2 নিন
-
আইটেম e1
দিয়ে মাইফ্লোট নামে ফ্লোটের AddItems-এর একটি অবজেক্ট তৈরি করুন -
myfloat.add(e2) কল করুন এবং প্রদর্শন করুন
-
-
অন্যথায় যখন টাইপ "int" এর মতো হয়, তখন:
-
দুটি অপারেন্ড e1 এবং e2 নিন
-
আইটেম e1
দিয়ে myint নামক ফ্লোটের AddItems-এর একটি অবজেক্ট তৈরি করুন -
myint.add(e2) কল করুন এবং প্রদর্শন করুন
-
-
অন্যথায় যখন টাইপ "স্ট্রিং" এর মতো হয়, তখন:
-
দুটি অপারেন্ড e1 এবং e2 নিন
-
ফ্লোটের AddItems-এর একটি অবজেক্ট তৈরি করুন যার নাম mystring with item e1
-
mystring.concatenate(e2) কল করুন এবং প্রদর্শন করুন
-
-
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <iostream> using namespace std; template <class T> class AddItems { T element; public: AddItems (T arg) { element=arg; } T add (T e2) { return element+e2; } T concatenate (T e2) { return element+e2; } }; int main(){ int n,i; cin >> n; for(i=0;i<n;i++) { string type; cin >> type; if(type=="float") { float e1,e2; cin >> e1 >> e2; AddItems<float> myfloat (e1); cout << myfloat.add(e2) << endl; } else if(type == "int") { int e1, e2; cin >> e1 >> e2; AddItems<int> myint (e1); cout << myint.add(e2) << endl; } else if(type == "string") { string e1, e2; cin >> e1 >> e2; AddItems<string> mystring (e1); cout << mystring.concatenate(e2) << endl; } } }
ইনপুট
5 int 5 7 int 6 9 float 5.25 9.63 string hello world string love C++
আউটপুট
12 15 14.88 helloworld loveC++