运算符重载

✍ dations ◷ 2025-11-17 21:31:24 #多态,计算机编程

在计算机程序设计中,运算符重载(英语: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;}

分类

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

支持运算符重载的语言:

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

相关

  • 生物群系生物群系(英语:Biome)又称生物区系。由诸如植物集群、动物集群和土壤生物(英语:Soil biology)集群的各种生物群落组成,是生态学上气候条件相似并按照气候和地理划分的区域。因常以
  • 指准化石指准化石(英语:Index fossils,又称为标准化石、指标化石)是指一种可以被用来推知所处地层的地质年代之化石。其运作原理基于一个前提上:虽然沉积物可能会因为沉积时所处的环境不
  • ɤ表内成对的元音分别为不圆唇/圆唇。半闭后不圆唇元音(英语:close-mid back unrounded vowel、high-mid back unrounded vowel)是相应的半闭后圆唇元音/o/的扁唇音。发音同/o/但
  • 马德里三一一爆炸案马德里三一一连环爆炸案(西班牙语:Atentados del 11 de marzo de 2004;常被简称为11-M)是指一系列发生在2004年3月11日针对西班牙首都马德里市郊铁路系统的恐怖主义炸弹袭击。在
  • 直布罗陀足球协会直布罗陀足球协会是专门管辖直布罗陀足球事务的组织。直布罗陀足球协会于2013年5月24日加入欧洲足联。并于2016年5月14日,获准加入国际足联。
  • 弗雷德里克·洛弗雷德里克·费迪南德·洛(Frederick Ferdinand Low,1828年6月30日-1894年7月21日),美国政治家,共和党人,曾任美国众议院议员(1862年-1863年)、加利福尼亚州州长(1863年-1867年)和美国
  • 乙二酰氯乙二酰氯,也称为“草酰氯”,是由乙二酸衍生出来的二酰氯,化学式为(COCl)2。乙二酰氯是无色液体,可由乙二酸与五氯化磷反应制备,主要用作有机合成的试剂。有机合成中,草酰氯主要用
  • 山际澄夫山际澄夫(1950年-)是日本的新闻工作者、前产经新闻记者。曾于富士电视台节目抨击日本政府未对台湾援助东日本大地震表达感谢是外交脑死。山口县下关市出身。明治大学毕业后,1975
  • 约西·贝纳永约西·贝纳永(英语:Yosef Shai "Yossi" Benayoun,有时作Benayun,希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"
  • 洪胜贤洪胜贤(韩语:홍승현),韩国电视剧编剧。