⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list.h

📁 一些C++的课件和实验源代码
💻 H
字号:
// list.h: interface for the list class.
//
//////////////////////////////////////////////////////////////////////

#ifndef HEADFILE_ARRAY
#define HEADFILE_ARRAY

template <class T>
class array  
{
protected:
	int size;
	T*	data;
	
public:
	array(int size);
	array(const array<T>& arr);
	virtual ~array();
	
	int		getSize();							// 获取链表长度
	T&		operator [](int index);				// 下标操作
	array<T>operator + (const array<T>& arr);	// 加法
	void	print();

private:
	void operator = (const array<T>& arr);
};

template <class T>
array<T>::array(int size)
{
	array::size = size;
	data = new T[size];
}

template <class T>
array<T>::array(const array<T>& arr)
{
	size = arr.size;
	data = new T[size];
	memcpy(data, arr.data, sizeof(T) * size);
}

template <class T>
array<T>::~array()
{
	if (data) delete [] data;
}

template <class T>
int array<T>::getSize()
{
	return size;
}

template <class T>
T& array<T>::operator [](int index)
{
	return data[index];
}

template <class T>
array<T> array<T>::operator + (const array<T>& arr)
{
	array<T> newarr(size);
	for (int i = 0; i < size; i++)
		newarr.data[i] = this->data[i] + arr.data[i];

	return newarr;
}

template <class T>
void array<T>::print()
{
	for (int i = 0; i < size; i++)
		cout << data[i] << "\t";
	cout << endl;
}

#endif // !defined(HEADFILE_LIST)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -