Array.h数组模板

本文主要介绍C++中的Array.h模板类,涵盖了拷贝构造函数、动态内存分配、运算符重载以及边界检查等内容。
摘要由CSDN通过智能技术生成

Array.h

复习:

  • 拷贝构造函数
  • 使用new在堆区开辟数据,delete销毁数据
  • 运算符重载[ ] 、> 、 =;
  • 直接使用assert(n >= 0 && n < size); //检查下标是否越界
#pragma once

//Array.h
#include <iostream>
using namespace std;
#include <cassert>
//数组类模板定义
template <class T>
class Array {
   
public:
	Array(int sz = 50); //构造函数
	Array(const Array<T> &a); //拷⻉构造函数
	~Array(); //析构函数
	Array<T> operator = (const Array<T> &rhs); //重载"="使数组对象可以整体赋值
	T & operator [] (int i); //重载"[]",使Array对象可以起到C++普通数组的作⽤
	const T & operator [] (int i) const; //"[]"运算符的const版本
	operator T * (); //重载到T*类型的转换,使Array对象可以起到C++普通数组的作⽤
	operator const T * () const; //到T*类型转换操作符的const版本
	int getSize() const; //取数组的⼤⼩
	void resize(int sz); //修改数组的⼤⼩
private:
	T *list; //T类型指针,⽤于存放动态分配的数组内存⾸地址
	int size; //数组⼤⼩(元素个数)
};

//构造函数
template <class T>
Array<T>::Array(int sz) {
   
	assert(sz >= 0); //sz为数组⼤⼩(元素个数),应当⾮负
	size 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值