运算符的重载
来源:互联网 发布:2016淘宝如何打造爆款 编辑:程序博客网 时间:2024/06/10 15:22
明天就要C++考试了,今天来复习一下运算符的重载。
主要是对一个数组类进行操作。我会分别对+、++(前置及后置)、[ ] 以及<<和>>进行重载。
其中,除了<<和>>,我使用的是成员函数对其进行重载,而<<和>>只能用友元函数。
#include <iostream> using namespace std; class Array{ public: int arr[5]; Array(); Array(int,int,int,int,int); Array operator+(Array &x); Array operator-(Array &x); Array &operator++(); //前置++ Array &operator++(int); //后置++ int operator[] (int); friend istream &operator>>(istream &in, Array &x); friend ostream &operator<<(ostream &out, Array &x); void show(); }; Array::Array(){ } Array::Array(int a,int b,int c,int d,int e){ arr[0]=a;arr[1]=b;arr[2]=c;arr[3]=d;arr[4]=e; } Array Array::operator+(Array &x){ Array temp; for(int i=0;i<5;i++) temp.arr[i]=this->arr[i]+x.arr[i]; return temp; } Array Array::operator-(Array &x){ Array temp; for(int i=0;i<5;i++) temp.arr[i]=this->arr[i]-x.arr[i]; return temp; } Array &Array::operator++(){ for(int i=0;i<5;i++) arr[i]++; return *this; } Array &Array::operator++(int){ Array *temp=new Array; *temp=*this; for(int i=0;i<5;i++) arr[i]++;<br> return (*temp);}void Array::show(){ for(int i=0;i<5;i++) cout << arr[i] << " " ; cout << endl; } int Array::operator[] (int i){ return arr[i]; } istream &operator>>(istream &in, Array &x){ cout << "请输入五个数字" <<endl; for(int i=0;i<5;i++) in>>x.arr[i]; return in; } ostream &operator<<(ostream &out, Array &x){ for(int i=0;i<5;i++) cout << x.arr[i] << " "; cout << endl; return out; } int main(){ Array A, B; cout << "数组A:"; cin >> A; cout << "数组B:"; cin >> B; Array C=A+B; cout << "*************" << endl; cout << "+的重载..." << endl; cout << "数组C=A+B:"; cout << C; cout << "*************" << endl; cout << "后置++的重载" << endl; cout << C++; cout << "前置++的重载" << endl; cout << ++C; cout << "*************" << endl; cout << "[]的重载" << endl; cout << "C[0]=" << C[0] << " " << "C[4]=" << C[4] <<endl; return 0; }
阅读全文
0 0
- 运算符的重载:[],(),->;
- 运算符的重载
- 运算符的重载
- 运算符的重载
- 运算符的重载
- “[]”运算符的重载
- 运算符的重载
- 运算符的重载
- 运算符的重载
- 运算符的重载
- 重载的<<运算符
- 运算符的重载
- 重载的+运算符
- 运算符的重载
- 运算符的重载
- 运算符的重载
- 运算符的重载
- 运算符的重载
- 如何通过网上的一个链接访问图片-----使用图床
- 使用CSDN-markdown编辑器
- ACM训练半周日记—11月9日
- 初学C语言
- 线程
- 运算符的重载
- Java设计模式(6)——观察者模式
- Understanding and Diagnosing Visual Tracking Systems
- POJ
- 关于数组名与指针的再学习
- 开头
- HTTPS和HTTP的区别
- 【Ubuntu】奇技淫巧-代码雨&小火车
- 子集生成——二进制方法与递归方法