您的位置:首页 > 编程语言 > C语言/C++

C++运算符重载

2014-06-05 23:20 302 查看
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。

运算符的重载可以说是一个比较实用而且灵活的方法,掌握了运算符重载的方法,对于以后一些复杂的问题的解决是有帮助的,本篇将利用对Circle对象的排序的方法对重载进行分析。

#pragma once
class 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)
{
}


通过上述代码,在对圆的半径进行排序时即可简单的利用<、>、<=、>=、==对实例排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: