C++什么是运算符重载

如题所述

c/c++语言中,运算符(比如:等号、大于小于号、判相等这些)其实是函数。只不过这些函数并不是由字母命名的而已。针对各种类型的变量运算符函数的实现也是不同,比如int变量的==操作,就需要判断4个字节的内存数据,char类型的变量==操作就需要判断1个字节的数据。当我们为自己的程序定义了一个新类型时(如:类、结构体),我们也可以为这个新类型来定义运算符,比如:
struct exmple
{
int a;
char b;
}
如果仅定义结构体的话,结构体之间是无法通过运算符来操作的,如
exmple ex1 = (exmple)ex2 就是不允许的。
但是如果我们为exmple结构体重载了=运算符的话,就可以执行上面那一句了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-28
运算符重载可以使用户像操作基本数据类型一样, 用最简洁、自定义的运算符操作自定义的类对象。 大部分预定义的运算符都可以被重载, 有5个运算符不能被重载, 分别是 . (类成员操作符) ?:(三目条件运算符) .*(指针指向的类成员操作符) :: (作用域操作符) sizeof (类型字长操作符), 先就这样吧.....
第2个回答  2018-03-28
CPU支持的就是最基本的运算符,举个栗子:等于号,只支持两种情况,整数,和浮点,那么数组和字符串的等于怎么办?他们要使用等于号只能重新定义等于号的意思了,是以循环的模式将一段连续的变量进行赋值操作。总而言之重新定义运算符的意思的行为就是重载运算符。
相似回答