Tag: 运算符重载

你将如何在JavaScript中重载运算符

我似乎无法find在javascript中重载[]运算符的方式。 那里有人知道吗? 我正在考虑… MyClass.operator.lookup(index) { return myArray[index]; } 还是我不看正确的事情。

覆盖Python的“in”运算符?

如果我在Python中创build我自己的类,我应该定义什么函数以允许使用“in”运算符,例如 class MyClass(object): … m = MyClass() if 54 in m: …

运算符在python中重载

可能重复: Python:定义我自己的操作符? 在Python中何时使用运算符重载的经验法则 是否有可能在Python中重载运算符? 如果是这样,是否可以定义新的运营商,如++和<< ?

是否有可能在PHP中重载运算符?

具体来说,我想创build一个Array类,并想重载[]运算符。

为什么重载operator()?

在Boost Signals库中,它们正在重载()运算符。 这是C ++的惯例吗? 对于callback等? 我已经看到了一个同事的代码(谁是一个很大的助推器粉丝)。 在所有的提升善良中,这只会导致我的困惑。 任何有关这种超负荷的理由?

为什么要replace默认的新的和删除操作符?

为什么要用一个自定义的new和delete操作符来replace默认的操作符new和delete ? 这是在重载 C ++ FAQ中重载和删除的延续: 运算符重载。 此常见问题解答的后续条目是: 我应该如何编写符合ISO C ++标准的自定义new和delete操作符? 注意:答案是基于Scott Meyers的“更有效的C ++”的教训。 (注意:这是一个Stack Overflow的C ++常见问题解答的入口,如果你想批评在这个表单中提供FAQ的想法,那么在这个开始所有这些的meta上的贴子将是这个地方的答案。那个问题在C ++聊天室中进行监控,常见问题解决scheme首先出现,所以你的答案很可能会被那些提出这个想法的人阅读)。

如何在处理负数的C / C ++ / Obj-C中编写一个模(%)运算符

我的一个C语言的宠物讨厌(作为一个math家)是这样的 (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly 什么是最好的解决scheme? C ++允许模板和运算符重载的可能性,但这两个对我来说都是阴暗的水域。 感激地收到的例子。

通过将string隐式转换为对象时,重载parsing失败

免责声明:我知道应该避免隐式转换为string,并且适当的方法将是对Person的op<< 。 考虑下面的代码: #include <string> #include <ostream> #include <iostream> struct NameType { operator std::string() { return "wobble"; } }; struct Person { NameType name; }; int main() { std::cout << std::string("bobble"); std::cout << "wibble"; Person p; std::cout << p.name; } 它在GCC 4.3.4上产生以下结果 : prog.cpp: In function 'int main()': prog.cpp:18: error: no match for 'operator<<' in […]

重载成员访问操作符 – >,。*(C ++)

我理解大多数运算符重载,除了成员访问运算符-> , .* , ->*等 特别是传递给这些运算符函数的是什么,应该返回什么? 操作符是如何工作的(如operator->(…) )是否知道被引用的成员? 可以知道吗? 它甚至需要知道吗? 最后,是否有需要考虑的常量因素? 例如,当重载类似operator[]东西时,通常你需要一个const和非const的版本。 成员访问操作符是否需要const和非const版本?

如何在没有无限recursion的情况下检查'=='运算符超载的空值?

以下将导致==运算符重载方法的无限recursion Foo foo1 = null; Foo foo2 = new Foo(); Assert.IsFalse(foo1 == foo2); public static bool operator ==(Foo foo1, Foo foo2) { if (foo1 == null) return foo2 == null; return foo1.Equals(foo2); } 我如何检查空值?