C++ 定义一个数组类,实现数组的一些常用 *** 作

C++ 定义一个数组类,实现数组的一些常用 *** 作,第1张


#include 
using namespace std;

class Array
{
public:
	Array(int size, int num = 0)
	{
		len = size;
		p = new int[len]; //给数组开辟空间
		for(int i = 0; i < len; i++)
		{
			p[i] = num;
		}
		
		cout << __func__ << ":" << __LINE__ << endl;
	}
	Array(const Array &obj)  // 拷贝构造-- 深拷贝
	{
		//this->p = obj.p;  //浅拷贝 -- 拷贝地址会涉及到释放同一个地址两次
		len = obj.len;
		p = new int[len];
		for(int i = 0; i < len; i++)
		{
			p[i] = obj.p[i];
		}		
		
		cout << __func__ << ":" << __LINE__ << endl;
	}	
	
	~Array()
	{
		delete [] p;  //释放数组资源
		p = NULL;
	
		cout << __func__ << ":" << __LINE__ << endl;
	}	
public:
	int get_arr_num(int pos)   //通过数组下标得到数组元素值
	{
		return p[pos];
	}
	
	void set_arr_num(int pos, int val) //通过下标修改数组元素值
	{
		p[pos] = val;
	}
	
	void show_arr()
	{
		int i = 0;
		for(i = 0; i < len; i++)   //循环打印每一个元素的值
		{
			cout << p[i] << " ";
		}	
		cout << endl;
	}

private:
	int *p;  //数组首地址
	int len; //数组元素个数

};

int main()
{
	Array arr1(5);
	arr1.show_arr();
	
	Array arr2(arr1);
	arr2.show_arr();
	
	return 0;
}




欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/2990168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存