问题标签 [postfix-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3383 浏览

c++ - c++ 后缀/前缀运算符重载为非成员函数

我正在编写自己的数组类作为练习。因为,我读到非成员函数实际上在某些方面比成员函数更好。(斯科特迈耶斯

我正在尝试尽可能多地编写非成员函数的运算符重载。运算符重载 + , - 作为非成员函数都可以正常工作。

但是,作为非成员函数的前缀/后缀运算符会产生问题(如果我使用范围解析并将它们设为成员函数,它们就可以正常工作)

我知道并非每个运算符重载都可以是成员函数。但是,我对为什么这两个不能是非成员函数感到困惑。我得到的错误是:

如果我将它们设为成员函数并允许 *this 数组 obj 以下列格式传递,这基本上可以解决。

但整件事是,我不想让它们首先成为成员函数!那么,是不是 pre/post fix 运算符不能/不应该被实现为非成员函数?

我想出的理由是,由于后缀/前缀是一元运算符,它们只有一个参数(通常是 *this)。因此,如果我希望编译器隐式提供 *this 指针并调用重载,则必须将它们实现为成员函数。

我的推理正确吗?如果不是,我如何将其实现为非成员函数?感谢您为我提供一些见解。

0 投票
1 回答
551 浏览

f# - F# 中的后缀条件运算符

在 Perl 语言中,可以编写类似的东西

即以后缀表示法应用条件。

我确信 F# 中一定有类似类型的表达式,因为它在处理函数时非常灵活。但是当我尝试写

或者

我收到预期的错误消息。有什么方法可以在 F# 中实现或多或少的通用后缀条件运算符?

0 投票
1 回答
714 浏览

java - 前缀和后缀操作数之间的区别?

我相信这个问题是不同的,因为另一个问题是询问数字是如何在 println() 中递增的。另一个问题中接受的答案没有解释后缀在打印后会增加值。

我一直在阅读大索引,我了解如何以及何时使用后缀,但我不知道存在前缀。当它说 6 在此代码中打印两次时,这是什么意思?我认为它添加到整数。

为什么它不打印 4、5、6、7、8?

0 投票
2 回答
1063 浏览

c - 后缀前缀 ++ 和二进制 & 运算符的优先级

我对 C 中的后缀和前缀运算符优先级感到困惑,任何帮助和提示都会有所帮助。

我将在这里粘贴我的测试代码:

我现在可以理解,在 postfix 版本中,虽然postfix ++具有更高的优先级,a++但会回到0这里&0x01会增加a' 的值。

但我无法理解的是为什么在前缀版本中,为什么++a首先评估?运算符优先级表表明prefix ++&具有相同的优先级,此外,它们的结合性是right-to-left。这不是&应该先评估的意思吗?

编辑: 我正在使用的图表:C 运算符优先级表

0 投票
1 回答
714 浏览

postfix-operator - 将三元和布尔运算符从中缀转换为后缀

如何将这两个示例从中缀转换为后缀?

对于这两种表达方式,我想我只需要删除括号即可。但是,当我尝试从后缀转换回中缀时,表达式无效。我知道如何做简单的操作:

...但我不确定如何转换最大和布尔表达式。

0 投票
1 回答
416 浏览

c++ - Prefix increments variable twice in C++

I'm facing a somewhat classic exam question around postfix and prefix operators, prefix that I can't wrap my head around. Consider the following:

The exam question asks for the output of the program. To me it would be "3 is greater than 2" but the actual output is "4 is greater than 2"

I understand how post and prefix work (or at least I thought so) but I don't get how the variable gets incremented twice. Any explanation on this?

0 投票
1 回答
60 浏览

c++ - 类成员转换函数-id

我正在寻找来自 Stadard 的引用描述以下行为:

以下规则用于conversion-type-id查找 (3.4.6/7):

如果 id-expression 是转换函数 ID,则首先在对象表达式的类中查找其转换类型 ID,如果找到,则使用名称。否则在整个后缀表达式的上下文中查找它。

考虑以下示例:

我不明白。上面的引用没有描述这种行为。它描述了conversion-type-id唯一的查找,但没有描述它conversion-function-id本身。

查找规则是 conversion-function-id什么?

0 投票
1 回答
23 浏览

gcc - libstd++ 后缀运算符挂起

以下程序挂起。我知道,有几种方法可以通过更改代码来修复它。

我的问题是:

  1. 如何修复它或解决这段代码?
  2. 它是 libstdc++ 或 gcc 中的错误吗?

预先感谢您的回答。

0 投票
1 回答
213 浏览

c - 后缀符号 - 堆栈弹出和推送帮助,为 mod 或 pow 运算符返回不正确的返回值

我的代码的目标相对简单,它接受命令行参数并相应地放置堆栈。

命令行参数:“2 2 +”应该等于 4。

我试过“2 2 +”并且它已经工作了,“2 4 + 3 / 6 +”也是如此,它已经评估为 8。但是有这个问题,其中“2 4 ^ 2 * 5 % 2 - " 它应该评估为 0 但我得到 -2 。这里有什么缺陷?

0 投票
1 回答
633 浏览

c++ - 前缀和后缀运算符继承

考虑以下代码:

我试图创建类的层次结构。基类,仅实现前缀递增/递减运算符。并在派生类中添加后缀版本。

但是,编译器找不到派生类对象的前缀操作。

为什么会发生这种情况,为什么不继承前缀运算符?