list.h

来自「一些C++的课件和实验源代码」· C头文件 代码 · 共 81 行

H
81
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?