类模板定义

本文详细介绍了C++中的类模板,包括类模板的作用、一般格式、成员函数定义以及对象创建。通过示例展示了如何使用类模板创建整型和字符型数组,并实现显示数组元素的功能。类模板提供了一种泛型编程的方式,可以用于不同数据类型的通用操作。
/*类模板的作用:只有数据类型不同,作用相同的类
===类模板的一般格式====
template<模板参数表>
class 类模板名
{
	成员声明
}
template<typename T>
class Array
{
	成员声明
}

===类模板外的成员函数格式====
类型 类模板名<参数>::函数名(参数名)
{
	函数体
}
template<typename T> 
void Array< T >::Show()
{
	函数体
}

===类模板生成对象格式====
类模板<实参表> 对象1,对象2
Array<int> intArray(10, 0);
*/

#include<iostream>
using namespace std;

#define C(dataType) template<typename T> dataType Array< T >


template<typename T>
class Array
{
public:
	Array(int size,T initValue);
	~Array();
	T& operator[](int index);
	void Show();
private:
	int size;
	T* p;
};

C(void)::Show()
{
	for (int i = 0; i < size; i++)
		cout << p[i] << " ";
	cout << endl;
}

C(T&)::operator[](int index)
{
	return p[index];
}

C()::Array(int size, T initValue)
{
	this->size = (size > 1) ? size : 1;
	this->p = new T[size];
	for (int i = 0; i < size; i++)
		p[i] = initValue;
}

C()::~Array()
{
	delete[] p;
}

int main(void)
{
	int nArr[10] = { 0,1,2,3,4,5,6,7,8,9 };
	char cArr[10] = { 'A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };
	Array<int> intArray(10, 0);
	Array<char> charArray(10, 0);
	for (int i = 0; i < 10; i++)
		intArray[i] = nArr[i];
	//intArray.operator[](i) = nArr[i]; 
	//P[index] = nArr[i]
	intArray.Show();

	for (int i = 0; i < 10; i++)
		charArray[i] = cArr[i];
	charArray.Show();

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值