问题标签 [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.
c++ - 规范运算符重载?
是否有规范或推荐的模式用于在 C++ 类数字类中实现算术运算符重载?
在 C++ FAQ 中,我们有一个异常安全的赋值运算符,可以避免大多数问题:
但是对于其他运算符(+、+= 等),除了让它们表现得像内置类型上的运算符外,几乎没有给出什么建议。
有定义这些的标准方法吗?这就是我想出的 - 有没有我没有看到的陷阱?
c# - 如何在 C# 中重载 [] 运算符
我想在一个类中添加一个运算符。我目前有一种GetValue()
方法,我想用[]
运算符替换。
c++ - 快速而肮脏的操作员!=
在我的课堂上,我经常operator!=
通过返回来快速写一篇文章!(*this == rhs)
,例如:
我看不出这样做有任何明显的问题,但我想我会问是否有人知道。
operator-overloading - 删除重载,递归溢出
嘿伙计们,我写了一个快速测试。我想 delete 调用 deleteMe 然后删除自己。这样做的目的是让我可以正常删除由 lib 分配的 obj。(我不希望由于 crt 或 w/e 导致任何崩溃)。
删除这个我得到一个stackoverflow,没有它msvc说我泄露了4个字节。当我不调用测试时,我泄漏 0。我如何删除 w/oa 递归问题?-edit- 使这一点更清楚。由于crt,我希望LIB调用delete(因此deleteMe)而不是程序
c++ - 重载删除,纯虚函数调用
所以我想重载删除抽象虚拟类。这将在另一个库中的派生类中调用 deleteMe()。这是为了防止这里提到的错误/崩溃C++ mix new/delete between libs?
当我在我的基类中调用 delete me from delete 时,我收到错误“纯虚拟函数调用”。然后我发现它已经调用了我的 dtor。我如何重载删除或以不调用 dtor 的方式编写此代码,以便我可以编写删除 obj;并让它调用 obj->deleteMe() 然后调用它自己的删除函数和 dtor?
actionscript-3 - AS3 中的重载 [] 运算符
我刚写完自己的collecion 类,我真的很想用for each 或simple for 构造让它可迭代,或者只是用collection[key] 表示法访问元素。
我已经写了一个getElementAt(index):MyOwnElement
函数,但是使用它并不像使用方括号那样性感,甚至不要让我开始迭代..
有什么办法吗?
c++ - 为什么 cout << 不能与重载的 * 运算符一起使用?
我正在创建我的第一堂课,主要由 Overland 的 C++ without Fear 指导。我已经使重载的朋友 ostream 运算符<<,它工作正常。我还重载了 * 运算符,并且效果很好。当我尝试直接输出 * 运算符的结果时不起作用:
有关信息,这是我的原型:
据我所知, operator* 返回一个 BCD,所以 operator<< 应该能够打印它。请帮忙!
c++ - 重载增量的返回值
在他的 The C++ Programming Language Stroustrup 中给出了 inc/dec 重载的以下示例:
为什么前缀运算符按引用返回,而后缀运算符按值返回?
谢谢。
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++ 又变得有点生疏了。:-)
vb.net - VB.NET (Of T) 比较运算符
在示例代码中,带有“错误注释”的行给出了以下错误 -
- 没有为类型“T”和“T”定义运算符“<”。
为什么 VB 不自动调用适当的 T 运算符?(即如果 T 是整数,则调用整数比较函数。)
是否有可能以优雅的方式完成这项工作?
这适用于 .NET 2.0。
编辑- 为任何感兴趣的人更新代码。