运算符重载

✍ dations ◷ 2025-11-29 02:44:41 #多态,计算机编程

在计算机程序设计中,运算符重载(英语:operator overloading)是多态的一种。这里,运算符(比如+===)被当作多态函数,它们的行为随着其参数类型的不同而不同。运算符并不一定总是符号。

运算符重载通常只是一种语法糖。它可以简单地通过函数调用来模拟:

a + b * c

在一个支持运算符重载的语言里,上面的写法要比下面的写法有效而简练:

add(a, multiply(b, c))

(假设运算符* 的优先级高于运算符 +)

当一种语言允许运算符在某种情况下被隐式调用的时候,运算符重载将不只提供写法上的方便。例如,Ruby中的to_s运算符就是如此,它返回一个对象的字符串表示。

运算符重载由于使程序员能够根据运算符类型的不同来决定运算符功能的不同而有多样用途。C++中<<的使用就是一个例子。表达式

a << 1

a是整型变量时将返回a的两倍,但是当a是一个输出流时将向这个流中写入“1”。因为运算符重载允许程序员改变运算符通常的语义,慎重使用运算符重载通常被认为是一个好习惯。

以下是C++语言示例:

#include <iostream>using namespace std;class point {public:	int x, y;	point() {		x = y = 0;	}	point(int ix, int iy) {		x = ix;		y = iy;	}	point pointxyadd(point pi) {		return point(x + pi.x, y + pi.y);	}	point operator+(point pi) {		return point(x + pi.x, y + pi.y);	}};int main() {	point p1(5, 10), p2(8, 13), p3, p4;	p3 = p1.pointxyadd(p2);	p4 = p1 + p2;	cout << "p3 = (" << p3.x << ',' << p3.y << ')' << endl;	cout << "p4 = (" << p4.x << ',' << p4.y << ')' << endl;	return 0;}

分类

支持运算符重载和定义新运算符的语言:

支持运算符重载的语言:

不支持运算符重载的语言:

相关

  • 吡哆醇吡哆醇(英语:Pyridoxine)是一种被称为维生素B6的化合物之一,另外两个分别是:吡哆醛与吡哆胺。它与吡哆胺的不同在于4位取代基。它也常被用作“吡哆醇盐酸盐”。化合物基于吡啶环,
  • 概率分布概率分布(德语:Wahrscheinlichkeitsverteilung;英语:probability distribution)或简称分布,是概率论的一个概念。使用时可以有以下两种含义:称X和Y为同分布的随机变量,当且仅当对任
  • 四足形亚纲四足形亚纲(学名:Tetrapodomorpha)是脊索动物门、肉鳍鱼总纲、肺鱼四足纲下的一个分类,包含了四足类及一群介于鱼类与四足类之间的史前过渡物种的演化支,这些史前动物告诉着脊椎
  • 丧失胃口食欲不振(英语:Anorexia),也作食欲减退、食欲缺乏,民间常称“没胃口”,是指食欲降低的一种症状。虽然在许多非科研出版物中该词也可指代神经性厌食症,但是食欲不振的成因却多种多样
  • 巴里·霍金斯巴里·霍金斯(英语:Barry Hawkins,1979年4月23日-)为出身于英国肯特郡的腾(英语:Ditton, Kent)的职业斯诺克选手,于1996年从业余转为职业身份;直到2004-2005斯诺克球季才开始有突出表
  • 来宾市来宾市(壮文:Laizbinh)是中华人民共和国广西壮族自治区下辖的地级市,位于广西中部。市境西南接南宁市,西北邻河池市,北界柳州市,东北连桂林市、梧州市,东南毗贵港市。地处桂中盆地低
  • 二亚胺二氮烯或二亚胺(Diimine/Diazene,HN=NH)是烯烃(包括多烯)和炔烃的氢化试剂。氢化是顺式加成,两个氢从一面加到不饱和键上,与金属催化的氢化反应选择性类似,因此该法适用于某些不适合
  • 摩西·阿伦斯摩西·阿伦斯(希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL SR","Keter Aram Tsova","Ta
  • 津田芳郎津田芳郎(つだ よしろう/TSUDA Yoshiro,1949年8月31日-2009年3月22日),日本宫城县人,历史学家、法制史学家、宋史学家,北海道大学教授。1975年3月东北大学大学院文学研究科博士课
  • 不汗党:坏家伙们的世界《不汗党:坏家伙们的世界》(韩语:불한당: 나쁜 놈들의 세상;英语:)为2017年上映的韩国电影。讲述韩国组织暴力团老大韩在浩(薛耿求 饰)与过去在监狱的狱友赵贤洙(时完 饰)互相信任与背