ধরা যাক আমরা একটি ক্লাস তৈরি করতে চাই যা দুটি ইন্টিজার, দুটি ফ্লোট বা দুটি স্ট্রিং যোগ করতে পারে (স্ট্রিং যোগ মানে কনক্যাটেনেশন)। ইনপুটে প্রথমে 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() মেথড থাকে
- main-এ n ইনপুট নিন
- প্রতিটি অপারেশনের জন্য:
- type পড়ুন
- যদি float হয়: দুইটি float ইনপুট নিয়ে AddItems
অবজেক্ট তৈরি করুন, add() কল করুন - যদি int হয়: AddItems
অবজেক্ট তৈরি করুন, add() কল করুন - যদি string হয়: AddItems
অবজেক্ট তৈরি করুন, concatenate() কল করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন:
#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++