C++ 中的运算符重载
来源:互联网 发布:阿里巴巴好还是淘宝好 编辑:程序博客网 时间:2024/05/20 05:56
您可以重定义或重载大部分 C++ 内置的运算符。这样,您就能使用自定义类型的运算符。
重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。
Box operator+(const Box&);
声明加法运算符用于把两个 Box 对象相加,返回最终的 Box 对象。大多数的重载运算符可被定义为普通的非成员函数或者被定义为类成员函数。如果我们定义上面的函数为类的非成员函数,那么我们需要为每次操作传递两个参数,如下所示:
Box operator+(const Box&, const Box&);
下面的实例使用成员函数演示了运算符重载的概念。在这里,对象作为参数进行传递,对象的属性使用 this 运算符进行访问,如下所示:
当上面的代码被编译和执行时,它会产生下列结果:
#include <iostream>using namespace std; class Box{ public: double getVolume(void) { return length * breadth * height; } void setLength( double len ) { length = len; } void setBreadth( double bre ) { breadth = bre; } void setHeight( double hei ) { height = hei; } // 重载 + 运算符,用于把两个 Box 对象相加 Box operator+(const Box& b) { Box box; box.length = this->length + b.length; box.breadth = this->breadth + b.breadth; box.height = this->height + b.height; return box; } private: double length; // 长度 double breadth; // 宽度 double height; // 高度};// 程序的主函数int main( ){ Box Box1; // 声明 Box1,类型为 Box Box Box2; // 声明 Box2,类型为 Box Box Box3; // 声明 Box3,类型为 Box double volume = 0.0; // 把体积存储在该变量中 // Box1 详述 Box1.setLength(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0); // Box2 详述 Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0); // Box1 的体积 volume = Box1.getVolume(); cout << "Volume of Box1 : " << volume <<endl; // Box2 的体积 volume = Box2.getVolume(); cout << "Volume of Box2 : " << volume <<endl; // 把两个对象相加,得到 Box3 Box3 = Box1 + Box2; // Box3 的体积 volume = Box3.getVolume(); cout << "Volume of Box3 : " << volume <<endl; return 0;}
Volume of Box1 : 210Volume of Box2 : 1560Volume of Box3 : 5400
可重载运算符/不可重载运算符
下面是可重载的运算符列表:
+-*/%^&|~!,=<><=>=++--<<>>==!=&&||+=-=/=%=^=&=|=*=<<=>>=[]()->->*newnew []deletedelete []下面是不可重载的运算符列表:
::.*.?:转自:
http://www.runoob.com/cplusplus/cpp-overloading.html
阅读全文
0 0
- 【C++】String类中的运算符重载
- C++-运算符重载
- [C++]重载运算符
- C#:运算符重载
- c++-++运算符重载
- C++:重载运算符
- 运算符重载(C++)
- [c++]运算符重载
- 【C++】运算符重载
- C++--------------------------------------------运算符重载
- C#:运算符重载
- C++:运算符重载
- C++:运算符重载
- C#:运算符重载
- [C++]运算符重载
- 【c++】运算符重载
- C++:运算符重载
- C#:运算符重载
- 文本相似度计算的几个距离公式(欧氏距离、余弦相似度、Jaccard距离、编辑距离)
- An abandoned sentiment from past
- USB 4P封装 焊盘计算 位号字体 正片热风焊盘 CAM350V10软件
- 【LNOI2014】bzoj3626 LCA
- Python numpy模块的数据分析实验(1)
- C++ 中的运算符重载
- EF速度优化
- Java IO
- 从文件中加载数据到内存
- 6.6结题报告(dp+搜索)
- 微博无刷新评论功能实现案例
- pajax使用教程
- poj2814-拨钟问题-C语言-枚举算法
- CSS animation