Template Class

#include<iostream>
using namespace std;

template <class temp>
class arraySum {
	int size;

	/* 'temp' type list */
	temp *list;
	public:
		arraySum(temp *a) {
			list = a;
			/* Get size of the array */
			size = (sizeof(a)/sizeof(*a));
		}

		/* 'temp' type binary operator overloading */
		temp operator+(arraySum &array) {
			temp result=0;
			for(int i = 0; i <= size; i++)
				result += this->list[i] + array.list[i];
			return result;
		}
};

int main() {
	int a[3] = {1,2,3};
	int b[3] = {4,5,6};

	/* integer type 'arraySun' object */
	arraySum <int> array1(a);
	arraySum <int> array2(b);

	/* perform sum of two integer array using binary operator overloading */
	int isum = array1 + array2;
	cout << "Sum of two integer array: " << isum << endl;

	float x[3] = {1.11,2.43,3.01};
	float y[3] = {4.95,5.21,6.59};

	/* float type 'arraySun' object */
	arraySum <float> array3(x);
	arraySum <float> array4(y);

	/* perform sum of two float array using binary operator overloading */
	float fsum = array3 + array4;
	cout << "Sum of two float array: " << fsum << endl;
	return 0;
}



/* Output */
Sum of two integer array: 21
Sum of two float array: 23.3

Comments (0)

  • To add your comment please or

We use cookies to improve your experience on our site and to show you personalised advertising. Please read our cookie policy and privacy policy.

Got It!