问题标签 [operator-overloading]

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 投票
4 回答
2836 浏览

c# - C# 中运算符方法的方法名称

有没有人有 C#/CLR 给操作员的名称的详尽列表?(也许是我睡眠不足,但我似乎无法在 Google 上找到它)例如 op_Addition、op_Subtraction。此外,这些在其他文化中是否会有所不同?

我正在尝试创建一个可以添加/减去等两个对象的类,并且我已经完成了所有原语 - 我只需要做“其余的”。

非常感谢。

0 投票
4 回答
290 浏览

c++ - 任何重载布尔运算符的库?

您是否见过任何重载布尔运算符的库/代码,据说这是邪恶的?它给用户带来了什么好处?

0 投票
3 回答
16976 浏览

c# - 后增量运算符重载

我在尝试重载 C# 中的后增量运算符时遇到问题。使用整数,我们得到以下结果。

但是,当我使用类尝试它时,看起来对象被交换了。

调试应用程序时,重载的运算符方法返回具有旧值 (10) 的新对象,而通过引用传递的对象具有新值 (11),但最终交换了对象。为什么会这样?

0 投票
5 回答
75147 浏览

c++ - 虚拟赋值运算符 C++

C++ 中的赋值运算符可以是虚拟的。为什么需要它?我们可以让其他运营商也虚拟化吗?

0 投票
11 回答
11292 浏览

delphi - 在 Delphi 中将 TDateTime 声明为常量

据我所知,没有办法做到这一点,但我会问以防万一其他人知道如何做到这一点。如何在 Delphi 中将日期声明为 const?

我找到的唯一解决方案是使用数字等价物,因为它不是人类可读的,所以维护起来 有点麻烦。

我想做的是这样的:

或者

所以让我知道这是一个功能请求还是我只是错过了如何做到这一点(是的,我知道这似乎是一件奇怪的事情......)

0 投票
4 回答
2922 浏览

c++ - 内存分配的运算符重载?

下面的句子来自Bruce Eckel的 The Positive Legacy of C++ and Java ,关于 C++ 中的运算符重载:

C++ 有栈分配和堆分配,你必须重载你的操作符来处理所有情况并且不会导致内存泄漏。确实很难。

我不明白运算符重载与内存分配有什么关系。谁能解释一下它们是如何相关的?

0 投票
9 回答
1453 浏览

c++ - 2D 矩阵和重载 operator() / 丑陋的语法

我在我的一个项目中使用 2D 矩阵。这类似于C++ FAQ Lite中的建议。

巧妙的是,您可以像这样使用它:

现在,我有一个由顶点组成的图,每个顶点都有一个指向 2D 矩阵的公共指针(只是为了示例的简单),如上所示。现在我确实有一个非常难看的语法来访问它。

由于我对运算符重载缺乏经验,我可能在这里遗漏了一些语法糖。有更好的解决方案吗?

0 投票
5 回答
1412 浏览

c++ - 为什么在c++中实现基于类的优先级队列时需要重载operator<?

请注意,我不是在寻求答案。我只是好奇为什么事情会奏效

我需要为班级分配的打印机模拟器实现优先级队列。在查看互联网上的示例后,我注意到 operator< 被超载以正确安排优先级队列。

有问题的代码:java2s 优先队列示例

为什么 operator< 需要重载?'<' 甚至在哪里进行比较?实现运算符重载会改变队列 STL 的工作方式吗?

这个实现对我来说似乎并不直观:为什么 operator> 没有被重载呢?应该如何知道 operator< 需要重载才能让 priority_queue 正常工作?

0 投票
3 回答
13256 浏览

c# - C#:隐式运算符和扩展方法

我正在尝试创建一个PredicateBuilder<T>包装 an并Expression<Func<T, bool>>提供一些方法来轻松构建具有各种方法的表达式的类。我认为如果我可以直接使用它会很酷,并且认为这可以通过有一个方法来完成。AndOrPredicateBuilder<T>Expression<Func<T, bool>>implicit operator

类的精简版如下所示:

然后,作为一个测试,我在一个静态类中有这个扩展方法:

在我的脑海中,我应该能够做到这些:

但是,它们都不起作用。对于第一个,没有找到扩展方法。第二个,它说

无法从用法中推断出方法“ExtravagantExpressions.PredicateHelper.PrintExpression(System.Linq.Expressions.Expression>)”的类型参数。尝试明确指定类型参数。

所以我尝试了以下方法,它有效:

当然,这也有效:

但是,是的......为什么其他人不工作?我是否误解了这implicit operator件事的工作原理?

0 投票
4 回答
5833 浏览

c++ - 不同类型的 C++ 对称二元运算符

我正在学习 C++,我想知道是否可以深入了解创建适用于两种不同类型实例的二元运算符的首选方法。这是我为说明我的担忧而做的一个例子:

如果我想在这两种类型之间具有对称性,那么在上面的代码中哪种方法是最好的方法。选择一种方法而不是另一种方法是否有任何可能的危险?这是否因返回类型而异?请解释!谢谢!