类模板 模板类

下面定义的是类模板,用int实例化T后成为模板类。
实例化类模板的语法:
类名<模板实参表>
 
结合下例即 Array<int> 就是将类模板Array实例化为模板类的语法。
 
/*类模板*/
#include <iostream>
using namespace std;

template<class T>
class Array {
	T *data;
	int size;
public:
	Array(int i) {
		data = new T[i];
		size = i;
	}

	~Array() {
		delete[] data;
	}

	T& operator[](int i) {
		return data[i];
	}

	void find(T a);
};
void Array<T>::find(T a) {
	for (int i = 0; i < size; i++) {
		if (data[i] == a) {
			cout << "Found it! The index is" << i << endl;
			break;
		}
		if (i == size) {
			cout << "Cann't find!\n";
		}
	}
}

int main(void)
{
	Array<int> iarray(10); //Array<int> 用int实例化模板参数T而生成的模板类。
	for (int i = 0; i < 10; i++) {
		iarray[i] = i;
		cout << iarray[i] << ",";
	}
	cout << endl;

	iarray.find(4);

	Array<double> darray(10);
	//...对double的操作略。
	return 0;
}
posted @ 2012-12-29 21:13  helloweworld  阅读(162)  评论(0编辑  收藏  举报