类模板 模板类

下面定义的是类模板,用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;

}

你可能感兴趣的:(模板)