问题标签 [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 回答
2988 浏览

c++ - 规范运算符重载?

是否有规范或推荐的模式用于在 C++ 类数字类中实现算术运算符重载?

在 C++ FAQ 中,我们有一个异常安全的赋值运算符,可以避免大多数问题:

但是对于其他运算符(+、+= 等),除了让它们表现得像内置类型上的运算符外,几乎没有给出什么建议。

有定义这些的标准方法吗?这就是我想出的 - 有没有我没有看到的陷阱?

0 投票
4 回答
154018 浏览

c# - 如何在 C# 中重载 [] 运算符

我想在一个类中添加一个运算符。我目前有一种GetValue()方法,我想用[]运算符替换。

0 投票
3 回答
809 浏览

c++ - 快速而肮脏的操作员!=

在我的课堂上,我经常operator!=通过返回来快速写一篇文章!(*this == rhs),例如:

我看不出这样做有任何明显的问题,但我想我会问是否有人知道。

0 投票
3 回答
413 浏览

operator-overloading - 删除重载,递归溢出

嘿伙计们,我写了一个快速测试。我想 delete 调用 deleteMe 然后删除自己。这样做的目的是让我可以正常删除由 lib 分配的 obj。(我不希望由于 crt 或 w/e 导致任何崩溃)。

删除这个我得到一个stackoverflow,没有它msvc说我泄露了4个字节。当我不调用测试时,我泄漏 0。我如何删除 w/oa 递归问题?-edit- 使这一点更清楚。由于crt,我希望LIB调用delete(因此deleteMe)而不是程序

0 投票
1 回答
779 浏览

c++ - 重载删除,纯虚函数调用

所以我想重载删除抽象虚拟类。这将在另一个库中的派生类中调用 deleteMe()。这是为了防止这里提到的错误/崩溃C++ mix new/delete between libs?

当我在我的基类中调用 delete me from delete 时,我收到错误“纯虚拟函数调用”。然后我发现它已经调用了我的 dtor。我如何重载删除或以不调用 dtor 的方式编写此代码,以便我可以编写删除 obj;并让它调用 obj->deleteMe() 然后调用它自己的删除函数和 dtor?

0 投票
3 回答
5328 浏览

actionscript-3 - AS3 中的重载 [] 运算符

我刚写完自己的collecion 类,我真的很想用for each 或simple for 构造让它可迭代,或者只是用collection[key] 表示法访问元素。

我已经写了一个getElementAt(index):MyOwnElement函数,但是使用它并不像使用方括号那样性感,甚至不要让我开始迭代..

有什么办法吗?

0 投票
1 回答
933 浏览

c++ - 为什么 cout << 不能与重载的 * 运算符一起使用?

我正在创建我的第一堂课,主要由 Overland 的 C++ without Fear 指导。我已经使重载的朋友 ostream 运算符<<,它工作正常。我还重载了 * 运算符,并且效果很好。当我尝试直接输出 * 运算符的结果时不起作用:

有关信息,这是我的原型:

据我所知, operator* 返回一个 BCD,所以 operator<< 应该能够打印它。请帮忙!

0 投票
3 回答
1377 浏览

c++ - 重载增量的返回值

在他的 The C++ Programming Language Stroustrup 中给出了 inc/dec 重载的以下示例:

为什么前缀运算符按引用返回,而后缀运算符按值返回?

谢谢。

0 投票
6 回答
408285 浏览

c++ - 如何正确重载 ostream 的 << 运算符?

我正在用 C++ 编写一个用于矩阵运算的小型矩阵库。但是我的编译器抱怨,以前没有。这段代码被搁置了 6 个月,在这期间我将计算机从 debian etch 升级到 lenny (g++ (Debian 4.3.2-1.1) 4.3.2 ) 但是我在具有相同 g++ 的 Ubuntu 系统上遇到了同样的问题.

这是我的矩阵类的相关部分:

和“实施”:

这是编译器给出的错误:

matrix.cpp:459: error: 'std::ostream& Math::Matrix::operator<<(std::ostream&, const Math::Matrix&)' 必须只取一个参数

我对这个错误有点困惑,但是在这 6 个月里做了很多 Java 之后,我的 C++ 又变得有点生疏了。:-)

0 投票
1 回答
9211 浏览

vb.net - VB.NET (Of T) 比较运算符

在示例代码中,带有“错误注释”的行给出了以下错误 -

  • 没有为类型“T”和“T”定义运算符“<”。

为什么 VB 不自动调用适当的 T 运算符?(即如果 T 是整数,则调用整数比较函数。)

是否有可能以优雅的方式完成这项工作?

这适用于 .NET 2.0。

编辑- 为任何感兴趣的人更新代码。