gpt4 book ai didi

c++ - + 运算符是否为原始类型重载?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:49 26 4
gpt4 key购买 nike

已经重载的运算符 <<,>>,= 等被多次使用。

我想到的一个例子是当我们添加字符串时说:

string name = string("munish") + "kumar";

+ 运算符在字符串类中重载。

但是当我们添加像 1 + 2 这样的数字时(看起来不像是重载的运算符调用)

我只是想知道编译器是如何执行二进制加法的。

我不需要太担心,如果编译器这样做的话,这只是我的好奇心。

最佳答案

原始类型不实现 operator+,它实际上是一个名字很奇怪的函数。原始类型的加法由 CPU 指令执行,例如:

addl %edx,(%eax) //this adds two integral values loaded at edx and eax

您为用户定义类型实现operator+,编译器生成大量CPU指令来执行您在operator+中编写的任务。

关于c++ - + 运算符是否为原始类型重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com