Вопросы с тегом «operator-overloading»

Перегрузка операторов - это функция языка программирования, которая позволяет настраивать реализации операторов в зависимости от типов задействованных операндов. Некоторые языки позволяют определять новые операторы, в то время как другие позволяют только переопределение существующих.

2
Перегрузка оператора: функция-член или функция-не-член?
Я читал, что перегруженный оператор, объявленный как функция-член, является асимметричным, потому что он может иметь только один параметр, а другой параметр, передаваемый автоматически, является thisуказателем. Так что не существует стандарта для их сравнения. С другой стороны, перегруженный оператор, объявленный как a, friendявляется симметричным, потому что мы передаем два аргумента одного …

10
Перегрузка оператора C # для `+ =`?
Я пытаюсь выполнить перегрузку оператора +=, но не могу. Могу сделать только перегрузку оператора для +. Как придешь? редактировать Причина, по которой это не работает, заключается в том, что у меня есть класс Vector (с полями X и Y). Рассмотрим следующий пример. vector1 += vector2; Если моя перегрузка оператора установлена …

13
Как проверить наличие нулей в перегрузке оператора '==' без бесконечной рекурсии?
Следующее вызовет бесконечную рекурсию в методе перегрузки оператора ==. 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); } Как проверить наличие нулей?


6
Есть ли способ выполнить перегрузку метода в TypeScript?
Есть ли способ выполнить перегрузку метода на языке TypeScript? Я хочу добиться чего-то вроде этого: class TestClass { someMethod(stringParameter: string): void { alert("Variant #1: stringParameter = " + stringParameter); } someMethod(numberParameter: number, stringParameter: string): void { alert("Variant #2: numberParameter = " + numberParameter + ", stringParameter = " + stringParameter); …

5
__lt__ вместо __cmp__
В Python 2.x есть два способа перегрузки операторов сравнения __cmp__или «многофункциональных операторов сравнения», таких как __lt__. Говорят, что предпочтительнее использовать богатые перегрузки для сравнения, но почему это так? Каждый из расширенных операторов сравнения проще реализовать, но вы должны реализовать несколько из них с почти идентичной логикой. Однако, если вы можете …

9
Javascript: перегрузка оператора
Я работаю с JavaScript уже несколько дней и дошел до того момента, когда хочу перегрузить операторы для моих определенных объектов. После того, как вы искали это в Google, кажется, что вы не можете официально сделать это, но есть несколько людей, которые заявляют о каком-то длинном способе выполнения этого действия. По …

4
оператор << должен принимать ровно один аргумент
ах #include "logic.h" ... class A { friend ostream&amp; operator&lt;&lt;(ostream&amp;, A&amp;); ... }; logic.cpp #include "a.h" ... ostream&amp; logic::operator&lt;&lt;(ostream&amp; os, A&amp; a) { ... } ... Когда я компилирую, он говорит: std :: ostream &amp; logic :: operator &lt;&lt; (std :: ostream &amp;, A &amp;) 'должен принимать ровно один аргумент. …

18
Оператор [] [] перегрузка
Можно ли []дважды перегрузить оператора? Чтобы разрешить, что-то вроде этого: function[3][3](как в двумерном массиве). Если возможно, я хотел бы увидеть пример кода.

16
Как закодировать оператор по модулю (%) в C / C ++ / Obj-C, который обрабатывает отрицательные числа
Одна из моих любимых ненавистников к языкам, производным от C (как математик), заключается в том, что (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly Какое лучшее решение? C ++ допускает возможность использования шаблонов и перегрузки операторов, но и то, и другое для меня …


3
unique_ptr <0 ИЛИ что делает меньше, чем оператор?
Я имею дело с кодом, который был написан не мной. У меня есть это утверждение: // p is type of std::unique_ptr&lt;uint8_t[]&gt; if (p &lt; 0) { /* throw an exception */ } Так что же p &lt; 0значит в этом контексте? На странице документации , я считаю, что мой случай …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.