问题标签 [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.
c++ - c++ 后缀/前缀运算符重载为非成员函数
我正在编写自己的数组类作为练习。因为,我读到非成员函数实际上在某些方面比成员函数更好。(斯科特迈耶斯)
我正在尝试尽可能多地编写非成员函数的运算符重载。运算符重载 + , - 作为非成员函数都可以正常工作。
但是,作为非成员函数的前缀/后缀运算符会产生问题(如果我使用范围解析并将它们设为成员函数,它们就可以正常工作)
我知道并非每个运算符重载都可以是成员函数。但是,我对为什么这两个不能是非成员函数感到困惑。我得到的错误是:
如果我将它们设为成员函数并允许 *this 数组 obj 以下列格式传递,这基本上可以解决。
但整件事是,我不想让它们首先成为成员函数!那么,是不是 pre/post fix 运算符不能/不应该被实现为非成员函数?
我想出的理由是,由于后缀/前缀是一元运算符,它们只有一个参数(通常是 *this)。因此,如果我希望编译器隐式提供 *this 指针并调用重载,则必须将它们实现为成员函数。
我的推理正确吗?如果不是,我如何将其实现为非成员函数?感谢您为我提供一些见解。
f# - F# 中的后缀条件运算符
在 Perl 语言中,可以编写类似的东西
即以后缀表示法应用条件。
我确信 F# 中一定有类似类型的表达式,因为它在处理函数时非常灵活。但是当我尝试写
或者
我收到预期的错误消息。有什么方法可以在 F# 中实现或多或少的通用后缀条件运算符?
java - 前缀和后缀操作数之间的区别?
我相信这个问题是不同的,因为另一个问题是询问数字是如何在 println() 中递增的。另一个问题中接受的答案没有解释后缀在打印后会增加值。
我一直在阅读大索引,我了解如何以及何时使用后缀,但我不知道存在前缀。当它说 6 在此代码中打印两次时,这是什么意思?我认为它添加到整数。
为什么它不打印 4、5、6、7、8?
c - 后缀前缀 ++ 和二进制 & 运算符的优先级
我对 C 中的后缀和前缀运算符优先级感到困惑,任何帮助和提示都会有所帮助。
我将在这里粘贴我的测试代码:
我现在可以理解,在 postfix 版本中,虽然postfix ++
具有更高的优先级,a++
但会回到0
这里&
并0x01
会增加a
' 的值。
但我无法理解的是为什么在前缀版本中,为什么++a
首先评估?运算符优先级表表明prefix ++
和&
具有相同的优先级,此外,它们的结合性是right-to-left
。这不是&
应该先评估的意思吗?
编辑: 我正在使用的图表:C 运算符优先级表
postfix-operator - 将三元和布尔运算符从中缀转换为后缀
如何将这两个示例从中缀转换为后缀?
对于这两种表达方式,我想我只需要删除括号即可。但是,当我尝试从后缀转换回中缀时,表达式无效。我知道如何做简单的操作:
...但我不确定如何转换最大和布尔表达式。
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?
c++ - 类成员转换函数-id
我正在寻找来自 Stadard 的引用描述以下行为:
以下规则用于conversion-type-id
查找 (3.4.6/7):
如果 id-expression 是转换函数 ID,则首先在对象表达式的类中查找其转换类型 ID,如果找到,则使用名称。否则在整个后缀表达式的上下文中查找它。
考虑以下示例:
我不明白。上面的引用没有描述这种行为。它描述了conversion-type-id
唯一的查找,但没有描述它conversion-function-id
本身。
查找规则是 conversion-function-id
什么?
gcc - libstd++ 后缀运算符挂起
以下程序挂起。我知道,有几种方法可以通过更改代码来修复它。
我的问题是:
- 如何修复它或解决这段代码?
- 它是 libstdc++ 或 gcc 中的错误吗?
预先感谢您的回答。
c - 后缀符号 - 堆栈弹出和推送帮助,为 mod 或 pow 运算符返回不正确的返回值
我的代码的目标相对简单,它接受命令行参数并相应地放置堆栈。
命令行参数:“2 2 +”应该等于 4。
我试过“2 2 +”并且它已经工作了,“2 4 + 3 / 6 +”也是如此,它已经评估为 8。但是有这个问题,其中“2 4 ^ 2 * 5 % 2 - " 它应该评估为 0 但我得到 -2 。这里有什么缺陷?
c++ - 前缀和后缀运算符继承
考虑以下代码:
我试图创建类的层次结构。基类,仅实现前缀递增/递减运算符。并在派生类中添加后缀版本。
但是,编译器找不到派生类对象的前缀操作。
为什么会发生这种情况,为什么不继承前缀运算符?