博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重载操作符 'operator'
阅读量:5286 次
发布时间:2019-06-14

本文共 1063 字,大约阅读时间需要 3 分钟。

operator 是 C++ 的(运算符的)重载操作符。用作扩展运算符的功能。

它和运算符一起使用,表示一个运算符函数,理解时应将  【operator+运算符】 整体上视为一个函数名。

要注意的是:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。

 

使用时:

【返回类型】 【operator+运算符】 (const ElemType&a)const  {...}

 

为什么需要重载操作符?

系统的所有操作符,一般情况下,只支持基本数据类型和标准库中提供的class。

而针对用户自己定义的类型,如果需要其支持基本操作,如’+’,‘-’,‘*’,‘/’,‘==’等等,则需要用户自己来定义实现(重载)这个操作符在此新类型的具体实现。

 

例:

创建一个point类并重载‘+’,‘-’运算符;

struct point{    double x;    double y;    point() {};    //初始化    point(double a,double b)    {        x = a;        y = b;    };    //重载+运算符    point operator + (const point& a) const    {        return point (x+ a.x, y+ a.y);    }    //重载-运算符    point operator - (const point& a)const    {        return point(x-a.x, y-a.y);    }};

 

检验;

int main(){    point w(2, 6), v(5, 3);    printf("w与v的坐标分别为:\n");    printf("w = (%.2f, %.2f)\nv = (%.2f, %.2f)\n", w.x, w.y, v.x, v.y);    point z = w+ v;    printf("w+v 的值z = (%.2f, %.2f)\n", z.x, z.y);    z = w- v;    printf("w-v 的值z = (%.2f, %.2f)\n", z.x, z.y);    return 0;}

 

检验结果;

 

end;

转载于:https://www.cnblogs.com/Amaris-diana/p/10289937.html

你可能感兴趣的文章
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
旅途上看的电影和观后感
查看>>
Ztree异步树加载
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
分布式计算开源框架Hadoop介绍
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
第二次团队冲刺第二天
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>