c++中的运算符重载主要用来做什么

2020-11-24 19:37:54 字数 5560 阅读 1550

1楼:匿名用户

主要是用来使对象之间可以做运算操作的.

比如,你定义了一个类的对象a而这个对象中有一个数据,又定义了一个b对象也有一个数据,你须要使用a+b来计算这两个对象中数据的合,就须要运算符重载.

运算符重载不光是可以重载四则运算的.也可以重载 下标运算符,<< >>输入输出运算符等等.

运算符重载主要的用途只是为了让运算符其前后跟后的对象可以直接像对象内的数据一样运算

2楼:匿名用户

主要用来

定义类的运算,比如你定义个复数类,

然后就需要定义复数的加减乘除。

一个很简单的例子,平面中质点速度就是个复数。

定义了速度的加减乘除,还可以定义其他运算,如点积,×积。

然后用这个类的时候,直接用重载的运算符运算,直观,简单。

显然,你可以不用运算符重载,而是直接用函数实现复数的各种运算。

但是运算符直观。

3楼:匿名用户

自定义运算符,用来实现符合自己实际的需要。

4楼:匿名用户

个人理解:就是为了实现不同对象里面成员的运算

c++中的运算符重载一般用在什么地方,以及有什么用处?

5楼:匿名用户

运算符重载一般用在类的实现中。

比如,定义了一个类

class myclass

{};然后定义了两个对象:

myclass item1, item2;

你可能需要进行两个对象相加的运算。

item1 + item2

但是,系统内部本身是不支持这种操作的,此时,你就需要重载 + 运算符,实现两个对象相加。

其他的运算符也大同小异。

6楼:匿名用户

重载运算符只是在让大家明白重载的思想,刚刚开始进入编程不会遇到重载运算符的例子。除非以后开发大的项目需要用到了运算符的重载。比方说,现在的运算符只能对整形 浮点型 字符型的去操作。

以后咱们想定义一个类的实例让这个类的对象直接就参与运算 (也就是运算符不再局限在类型变量上,而是可以实现在类的对象上)

c++中 运算符重载 到底有什么何意义?

7楼:匿名用户

运算符重载是一种特殊的函数重载。例如int a,b;则求a+b值时,在编译过程中使用的是函数调用:opertor+(a,b).主要作用就是使程序更加简洁,减少编程时间。

8楼:匿名用户

运算符重载是一种特殊的函数重载。

c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。

由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。

在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。

成员函数的形式比较简单,就是在类里面定义了一个与操作符相关的函数。友元函数因为没有this指针,所以形参会多一个。

9楼:湛蓝水晶

的确是一样的,比如你重载了加号,其实是同样可以定义add()函数来完成相同的操作。

重载是为了让运算比较符合人的思维,比如定义一个矩阵类matrixmatrix a, b ,c;

//...

//初始化a、b的语句

c = a+b; //如果没有重载加号的话,这条就通不过编译了只是这个+号你同样可以定义一个add函数来操作,如:

c = a.add(b);

你觉得哪种方法比较直观?

10楼:匿名用户

你想想如果两个时间相加,你用+号行吗?

你要是把+号重载一下,写一个你自己的+号运算方法不就可以了。

运算符重载就是自己定义符号

c++中运算符重载到底有什么好处,可以举例说明吗?

11楼:匿名用户

就我的理解

那些运算符本身功能是有限的

比如不能进行复数的加减

但是我们重载以后

就可以让它实数与实数相加,虚数与虚数相加,最后结果也是复数还有字符串string里也有很多重载的地方,像两个字符串也可以相加,等等

重载的主要目的是,简洁易懂,原理上其实也是通过函数实现的,像a + b用add(a,b) 也行,但是看起来要就没那么直观了。

12楼:匿名用户

举例:class point

const point operate+(const point& p1, const point& p2)

void main()

明白了吗?如果没有操作符重载,你是不能做p = p1+p2;这个操作的。操作符重载使你可以自己定制操作符的运算方式

c++中为什么要用输入输出运算符重载,有什么作用?。。。。急用。。。新手不懂!

13楼:救世大英雄啊

比如<<,在平时他是输出普通变量等,如int a=10;cout<类的对象,如class people{};

people p();

你想直接用cout<

14楼:匿名用户

简单解释一下,a、b为整型,那么可以直接a+b,如果a、b是类student的对象呢?a+b表示什么?重载运算符最大的用处就是可以用于两个对象或者对象与常规型对象之间,a+b你可以重载'+'为类student的分数相加,或者其他(年龄、钱数...

),明白?

15楼:匿名用户

重载运算符主要是为了。。。比如 没有 string类型 在c里面你想要 让 char * p1 = "123" char *p2 = "456" p1 + p2 。。。这种结果无法预知的,但是你通过string 类重载 + 运算符 你可以 string p1 string p2 .............

p1 + p2 这种就是正确的了。主要方便运算操作

c++里什么是运算符重载?在什么情况下用?

16楼:匿名用户

运算符重载 operator 关键字,比如你有一个class a;

a a;

a b;

a = b;

如果在你的class a中没有定义 operator = 构造函数,a = b 就会出错;

同理,也可以重载 operator 、operator <、operator >等函数,为的就是实现 a、ab等自定义类型操作

17楼:

运算符重载就是编译器不

知道运算规则,由你来制定规则 比如结构体point 你直接用两个结构体相加,编译器就不知道怎么加,所以要你重载+号,告诉编译器运算规则,实现两个结构体间的运算

不同数据类型之间的运算,还有复合数据类型参与的运算都要运算符重载

18楼:匿名用户

简单的说就是重新定义运算符的动作。比如可以定义+运算符的动作为连接字符串,日期+1,虚数相加,矩阵相加等等。

在c++中为何要进行运算符的重载啊/ 而且有什么好处啊?请详细的介绍一下谢谢

19楼:匿名用户

具有相同的语意,减少函数名称带来的混淆.

20楼:匿名用户

实现对自定义类型的运算!如果没有运算符重载这个概念的话,自定义类型之间的运算就含有不确定性!有了这个技术的话,自定义类型之间的运算就可以自定义怎么来运算!

c++中得运算符重载是什么概念啊?

21楼:匿名用户

一个自定义的类,一般是没有诸如+-*/或者其他的操作的,为了编程方便一点,就出现了运算符重载,就是为了定义这些操作符针对自定义类的操作。

22楼:匿名用户

操作符即是函数

a+b 等价于 operator+(a,b)"operator+" 就是+号的函数名字自定义的类不能直接使用a+b这样的形式, 因为operator+不接受自定义类型这样的参数

这时就需要你去定义一个+, 也就是重载

重载操作符主要是为了**的美观和优雅

像 str + str2 + str3 这样的比起用函数 str.push_back(str2).push_back(str3)更加简洁和美观

23楼:匿名用户

运算符重载就是给这个运算符增加更加强大的功能。比如说:我们正常的+号只能进行整数浮点数的相加,不能用于结构体或者类的相加,这时就需要对+号进行重载,让它能用于结构体或类的相加。

在这个重载函数由你自己写**定义重载后的加号要怎么对类或者结构进行操作。在以后出现加号的地方,函数会自动判断你操作的是数还是类或者结构,然后选择对应的加函数进行加操作。

24楼:匿名用户

参考 cppreference.....

c++运算符重载是什么意思

25楼:北大青鸟

所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。

运算符也可以重载。实际上,我们已经在不知不觉之中使用了运算符重载。例如,大 家都 已习惯于用加法运算符”+”对整数、单精度数和双精度数进行加法运算,如5+8, 5.

8 +3.67等,其实计算机对整数、单精度数和双精度数的加法操作过程是很不相同的, 但由于c++已经对运算符”+”进行了重载,所以就能适用于int, float, double类型的运算。

又如”<<“是c++的位运算中的位移运算符(左移),但在输出操作中又是与流对 象cout 配合使用的流插入运算符,”>>“也是位移运算符(右移),但在输入操作中又是与流对象 cin 配合使用的流提取运算符。这就是运算符重载(operator overloading)。c++系统对”<<“和”>>“进行了重载,用户在不同的场合下使用它们时,作用是不同 的。

对”<<“和”>>“的重载处理是放在头文件stream中的。因此,如果要在程序中用”<<“和”>>”作流插入运算符和流提取运算符,必须在本文件模块中包含头文件stream(当然还应当包括”using namespace std“)。

在c++中不能在程序中直接用运算符”+”对复数进行相加运算。用户必须自己设法实现复数相加。例如用户可以通过定义一个专门的函数来实现复数相加。

26楼:匿名用户

比如+运算在正常情况下只能对基本类型(int 、float等)进行加法

重载之后就可以对复数a+bi进行加法(重载函数要针对复数去写) 如:(a+bi)+(c+di)=(a+b)+(c+d)i

重载完之后+就可以完成上面功能

27楼:匿名用户

先去了解什么是函数重载吧。大概意思就是两个同名的函数,利用形参的不同来作区分。

请问在c++中是什么运算符,请问c++中的"^"运算符是什么运算符.

1楼 匿名用户 和c是一样的,先对所有的数据转换成二进制, 如果对应位有一个为1,则该位为1, 是两个全为1,则为1,否则为0, 代表两位相同的话则为0,否则为1 则4 6 100 110 110, 5 7 101 111 101 8 9 1000 1001 0001 2楼 傲世修罗王 是位运算符,...

c运算符-与什么等效,C语言的运算符和表达式有哪些

1楼 醒目鸟 1 表示比特位右移。效果与 除以 类似。右移一位即除以2,右移2位即除以4,右移3位即除以8 例如 数字8的二进制码为 00001000 右移一位后变为 00000100。 即00000100 4 2 还有一种含义 在c 里表示堆栈的指针位置。例如 this data 2楼 千锋教育 ...

c语言中的和两个运算符有什么区别

1楼 匿名用户 在c语言中,运算符 和运算符 所表示的意义不同。 是赋值运算符,它的含义是将右侧表达式的值赋给左侧的变量。 是关系运算符,如果两侧表达式的值相等,则其值为1,否则为0。 2楼 匿名用户 一个等号是赋值运算符,用于把等号右边的结果赋值给左边的变量 两个等号是判等运算符,用于判断等号左右...