gpt4 book ai didi

c++ - 运算符与函数行为

转载 作者:IT王子 更新时间:2023-10-29 01:00:13 25 4
gpt4 key购买 nike

我正在阅读以下文档,

https://code.google.com/p/go-wiki/wiki/GoForCPPProgrammers

并发现下面的语句有点模棱两可:

Unlike in C++, new is a function, not an operator; new int is a syntax error.

在 C++ 中,我们将运算符实现为函数,例如+ 使用 operator+

那么,operatorfunction 在一般编程语言中的确切区别是什么?

最佳答案

函数和运算符之间的实际区别取决于编程语言。在纯 C 中,运算符是语言本身的一部分。不能添加运算符,也不能更改现有运算符的行为。这与 C++ 不同,在 C++ 中运算符被解析为函数。

从完全不同的角度来看,考虑 Haskell,其中任何(二元)函数都可以被视为二元运算符:

如果您不会说 Haskell,但了解点积,那么这个示例应该仍然相当简单。鉴于:

dotP :: (Double, Double) -> (Double, Double) -> Double
dotP (x1, y1) (x2, y2) = x1 * x2 + y1 * y2

两者

dotP (1,2) (3,4)

(1,2) `dotP` (3,4)

将给出 11。

要解决 Go 文档中的引述:Go 开发人员只是强调在 C++ 中,人们会将 new 视为具有自己语法的关键字,在 Go 中应将 new 视为任何其他函数。

关于c++ - 运算符与函数行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17782638/

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