C++运算符重载
来源:互联网 发布:mac版qq怎么远程 编辑:程序博客网 时间:2024/05/04 12:35
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。
运算符的重载可以说是一个比较实用而且灵活的方法,掌握了运算符重载的方法,对于以后一些复杂的问题的解决是有帮助的,本篇将利用对Circle对象的排序的方法对重载进行分析。
#pragma onceclass Circle{public:Circle(void);Circle(double radius);~Circle(void);double getRadius();void setRadius(double radius);double getArea();bool operator == (Circle &c ); bool operator != (Circle &c);bool operator< (const Circle &c1);bool operator <= (Circle &c);bool operator > (Circle &c);bool operator>= (Circle &c);private:double radius;};
#include "Circle.h"Circle::Circle(void){radius = 0;}Circle::Circle(double radius){this->radius = radius;}double Circle::getRadius(){return radius;}void Circle::setRadius(double radius){this->radius = radius;}double Circle::getArea(){return 3.14*radius*radius;}bool Circle::operator== (Circle &c ){return this->radius<c.radius;}bool Circle::operator != (Circle &c){return this->radius<c.radius;}bool Circle::operator< (const Circle &c ) {return this->radius<c.radius;}bool Circle::operator <= (Circle &c){return this->radius<c.radius;}bool Circle::operator > (Circle &c){return this->radius<c.radius;}bool Circle::operator>= (Circle &c){return this->radius<c.radius;}Circle::~Circle(void){}
通过上述代码,在对圆的半径进行排序时即可简单的利用<、>、<=、>=、==对实例排序。
0 0
- C++-运算符重载
- [C++]重载运算符
- C#:运算符重载
- c++-++运算符重载
- C++:重载运算符
- 运算符重载(C++)
- [c++]运算符重载
- 【C++】运算符重载
- C++--------------------------------------------运算符重载
- C#:运算符重载
- C++:运算符重载
- C++:运算符重载
- C#:运算符重载
- [C++]运算符重载
- 【c++】运算符重载
- C++:运算符重载
- C#:运算符重载
- C++:运算符重载
- Stamps uva+回溯
- volatile
- 鼠标滚轮插件jQuery mousewheel
- 营救公主
- 19_leetcode_Remove Duplicates from Sorted Array
- C++运算符重载
- Java并发编程之ConcurrentHashMap
- 20_leetcode_Search in Rotated Sorted Array
- golang text/template的用法: if, else, with
- leetcode——Reverse Words in a String 旋转字符串中单词顺序(AC)
- 再看virtual
- 简单分布式资源调度程度【仅题目】
- Python环境变量的配置
- 21_leetcode_Search for a Range