Template Class

أنشِئ Class :

اسمه: Addition

المتغيرات : elem1 ,elem2

يحوي : parameterized constructor و دالة لحساب مجموع العنصرين  و دالة لطباعة محتوى  .

-أجعل هذا الـ class يستقبل أي نوع من البيانات ، بمعنى يمكنه جمع أي عددين سواءً int أو double أو أي نوع آخر .

الحل:

جعل الـ class يستقبل أي نوع من البيانات يعني استخدام مفهوم template .

//main.cpp
#include <iostream>
using namespace std;
#include <string>

template <typename T>
class Addition
{

 T elem1;
 T elem2;

public:

 Addition(T val1, T val2);
 T calc();
 void print();

};


template <typename T> Addition<T>::Addition(T val1, T val2)
{
 elem1 = val1;
 elem2 = val2;
}

template <typename T> T Addition<T>::calc()
{
 return elem1 + elem2;
}

template <typename T> void Addition<T>::print()
{
 cout << "Result is: " << calc() << endl;

}

void main()
{
 Addition<int> ADD1st(9, 8);

 cout << "int type| ";
 ADD1st.print();

 Addition<double> ADD2nd(1.2 , 6.2);
 cout << "double type| ";
 ADD2nd.print();

 Addition<string> ADD3rd("HE", "llo");
 cout << "string type| ";
 ADD3rd.print();

 system("pause");
}