算术运算符重载后的总结
2015-02-15 22:03
363 查看
重载是为处理自定义类型的操作
#include <iostream.h> class Overload { private: int a; int b; friend ostream& operator<<(ostream &out, Overload &one); public: Overload(int a = 0, int b = 0) { this->a = a; this->b = b; } void show() { cout<<a<<" + " <<b<<"z"<<endl; } public: //对象相减 Overload operator-(Overload &two) { Overload tmp; tmp.a = this->a - two.a; tmp.b = this->b - two.b; return tmp; } //对象整形 Overload operator-(int x) { Overload tmp; tmp.a = this->a - x; tmp.b = b; return tmp; } Overload operator+(Overload &two) { Overload tmp; tmp.a = this->a + two.a; tmp.b = this->b + two.b; return tmp; } Overload operator+(int x) { Overload tmp; tmp.a = this->a + x; tmp.b = b; return tmp; } // 前置-- Overload& operator--() { this->a--; this->b--; return *this; } // 前置++ Overload& operator++() { this->a++; this->b++; return *this; } //后置-- Overload operator--(int) { Overload tmp = *this; this->a --; this->b --; return tmp; } //后置++ Overload operator++(int) { Overload tmp = *this; this->a ++; this->b ++; return tmp; } }; ostream& operator<<(ostream &out, Overload &one) { out<<"<<重载"<<endl; out<<one.a<<" + "<<one.b<<"z"<<endl; return out; } void main() { Overload c1(1, 2), c2(4, 6); cout<<"对象减对象的两种表示"<<endl; Overload c3 = c1.operator-(c2); c3.show(); Overload c4 = c1 - c2 ; c4.show(); cout<<"对象减整形的表示"<<endl; Overload c5 = c2 - 1 ; c5.show(); cout<<"对象加法同理略过"<<endl; cout<<endl; cout<<"前置--用法"<<endl; cout<<"x=--y,后x的值"<<endl; Overload c6 = --c2; c6.show(); cout<<"x=--y,后y的值"<<endl; c2.show(); c2++; cout<<"后置--用法"<<endl; cout<<"x=y--,后x的值"<<endl; Overload c7 = c2--; c7.show(); cout<<"x=y--,后y的值"<<endl; c2.show(); cout<<c2; }
相关文章推荐
- 【ZZ】C++运算符重载总结 & 返回值优化
- 【总结】.函数重载解析过程详解
- 一句话总结重构、重载、重写
- 关于VB.NET基类继承、重载、隐藏的总结归纳
- 关于C++函数指针、函数回调的相关总结(重载与多态)
- 方法的重载和参数总结
- C++ 重载(overload)、重写(overrride)、重定义(redefine)总结
- 继承、多态,重载、重写的区别与总结
- C++基本概念总结——重载(overload)和重写(override)
- 疑问: 方法重载到底是不是面向对象的多态性问题?(好几天了,做一下总结)
- Java方法继承、方法重载、方法覆盖小总结
- operator->重载问题总结 让一个对象表现的像一个指针
- C++ 重载(overload)、重写(overrride)、重定义(redefine)总结
- Java方法继承、方法重载、方法覆盖小总结
- C#经典语法总结(六)Equals() 和运算符 == 的重载准则
- C# 学习总结 之 类 、接口、多态、重载
- 重写与重载总结
- Java方法继承、方法重载、方法覆盖小总结
- C++ 重载(overload)、重写(overrride)、重定义(redefine)总结
- [工作问题总结]IE6 缓存引起的页面无法重载问题及解决方案