मान लीजिए कि हम एक ऐसा वर्ग बनाना चाहते हैं जो दो पूर्णांक, दो फ्लोट और दो तार जोड़ सके (स्ट्रिंग जोड़ मूल रूप से तारों को जोड़ना है)। पहले इनपुट के रूप में हम एक संख्या n लेते हैं जो दर्शाता है कि 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() स्ट्रिंग्स को जोड़ देगा।
-
मुख्य विधि से, निम्न कार्य करें
-
इनिशियलाइज़ करने के लिए:=0, जब मैं
-
प्रकार :=वर्तमान प्रकार
-
यदि प्रकार "फ्लोट" के समान है, तो:
-
दो ऑपरेंड लें e1 और e2
-
आइटम e1 के साथ Myfloat नामक फ्लोट के AddItems का ऑब्जेक्ट बनाएं
-
myfloat.add(e2) पर कॉल करें और डिस्प्ले करें
-
-
अन्यथा जब प्रकार "int" के समान हो, तब:
-
दो ऑपरेंड लें e1 और e2
-
आइटम e1 के साथ Myint नामक फ्लोट के AddItems का ऑब्जेक्ट बनाएं
-
myint.add(e2) पर कॉल करें और डिस्प्ले करें
-
-
अन्यथा जब प्रकार "स्ट्रिंग" के समान है, तो:
-
दो ऑपरेंड लें e1 और e2
-
आइटम e1 के साथ Mystring नामक फ्लोट के AddItems का ऑब्जेक्ट बनाएं
-
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++