C++编程入门--数组类重载运算符

本文展示了一个使用C++实现的动态数组类,该类通过运算符重载实现了数组的加法和减法操作。文章详细介绍了如何通过重载运算符来简化动态数组的操作,并提供了完整的代码示例。
//created by kong at 2019-11-07
#include<iostream>
using namespace std;
const int MAX = 10;    //数组大小
class Array{
	double *data;      //动态数组
public:
	Array();           
	~Array();
	double &operator[](int i);    //下标重载运算符
	Array &operator=(Array &a);   //"="重载运算符
	Array &operator+(Array &a);   //"+"运算符重载成员函数
	Array &operator-(Array &a);   //"-"运算符重载成员函数
	void disp();                  //输出数组
};
Array::Array(){
	int i;
	data = new double[MAX];       //分配动态数组空间
	for (i = 0; i < MAX; i++)      //数组元素布初值
		data[i] = 0;
}
Array::~Array(){                   //释放data分配的空间
	delete[]data; 
}
double &Array::operator[](int i){
	return *(data + i);
}
Array&Array::operator=(Array &a){
	int i;
	for (i = 0; i < MAX; i++)
		data[i] = a.data[i];
	return *this;
}
Array&Array::operator+(Array&a){
	int i;
	static Array tmp;
	for (i = 0; i < MAX; i++)
		tmp.data[i] = data[i] + a.data[i];
	return tmp;
}
Array&Array::operator-(Array&a){
	int i;
	for (i = 0; i < MAX; i++)
		data[i] += a.data[i];
	return *this;
}
void Array::disp(){
	int i;
	for (i = 0; i < MAX; i++)
		cout << data[i] << " ";
	cout << endl;
}
void main(){
	Array a, b, c, d;
	cout << "创建了4个数组对象a,b,c,d\n";
	cout << "给数组a赋部分元素值\n";
	a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4;
	cout << "a:";
	a.disp();
	cout << "执行b=a\n";
	b = a;
	cout << "b:";
	b.disp();
	cout << "执行c=a+b\n";
	c = a + b;
	cout << "c:";
	c.disp();
	cout << "执行c=a+b后,a,b的结果\n";
	cout << "a:";
	a.disp();
	cout << "b:";
	b.disp();
	cout << "执行d=a-b\n";
	d = a - b;
	cout << "d:";
	d.disp();
	cout << "执行d=a-b后a,b的结果\n";
	cout << "a:";
	a.disp();
	cout << "b:";
	b.disp();
	cout << "主函数执行完毕,销毁四个对象。\n";
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值