ارائه آرایه توسط گرانبار کردن عملگر [] و بکارگیری template در زبان ++C

the_king

مدیرکل انجمن
کلاس carray یک آرایه 10 عنصری را توسط گرانبار کردن عملگر [] ارائه می کند، بطوری که بتواند با انواع
مختلف داده کار کند، تابع calculate توان سوم یک عدد مثبت از هر نوع داده عددی را محاسبه می نماید :

کد:
#include "iostream.h"
#include "assert.h"

template <class T> class carray
{
	private:
		T array[10];
	public:
		T &operator [](int index)
		{
			assert((index>=0)&&(10>index));
			return array[index];
		}
		const T &operator [](int index) const
		{
			assert((index>=0)&&(10>index));
			return array[index];
		}
};

template <class T> T calculate(T value)
{
	T result;
	result=value*value*value;
	if (result<0)
		result*=-1;
	return result;
}

int main()
{
	int i;
	carray<int> cal;
	int v1=2;
	for (i=0;i<10;i++)
	{
	   cal[i]=calculate(v1);
	   v1=v1+1;
	}
	carray<float> ca2;
	float v2=2.5;
	for (i=0;i<10;i++)
	{
		ca2[i]=calculate(v2);
		v2=v2+1;
	}
	return 0;
}
 

جدیدترین ارسال ها

بالا