Запитання з тегом «operator-overloading»

Перевантаження оператора - це особливість мови програмування, яка дозволяє користувальницьким реалізаціям для операторів залежно від типів операндів. Деякі мови дозволяють визначати нових операторів, а інші дозволяють лише переосмислити існуючі.

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

10
Перевантаження оператора C # для `+ =`?
Я намагаюся робити перевантаження оператора +=, але не можу. Я можу зробити лише перевантаження оператора для +. Як це? Редагувати Причина цього не працює в тому, що у мене є векторний клас (з полями X і Y). Розглянемо наступний приклад. vector1 += vector2; Якщо перевантаження мого оператора встановлено на: public …

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__. Кажуть, переважні багаті порівняльні перевантаження, але чому це так? Багаті оператори порівняння простіше реалізувати кожен, але ви повинні реалізувати кілька з майже однакової логіки. Однак, якщо ви можете користуватися вбудованим cmpі кортежним замовленням, тоді …

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;) 'повинен приймати рівно один аргумент. …

8
Javascript: перевантаження оператора
Я працюю з JavaScript вже кілька днів і дійшов до того моменту, коли хочу перевантажити оператори для моїх визначених об'єктів. Після обмеженого пошуку на Google, здається, ви не можете офіційно цього зробити, але там є кілька людей, які заявляють про якийсь довгомовний спосіб виконати цю дію. В основному я створив …

18
Перевантаження оператора [] []
Чи можна перевантажити []оператора двічі? Щоб дозволити, щось приблизно таке: function[3][3](як у двовимірному масиві). Якщо це можливо, я хотів би побачити приклад коду.

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



11
Коли перевантажувати оператор кома?
Я так часто бачу запитання щодо SO щодо перевантаження оператора коми в 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означає в цьому контексті? На сторінці документації я вважаю, що моя справа є 16) y &lt; nullptr, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.