Pytania otagowane jako operator-overloading

Przeciążanie operatorów to funkcja języka programowania, która umożliwia niestandardowe implementacje dla operatorów w zależności od typów operandów. Niektóre języki pozwalają na definiowanie nowych operatorów, podczas gdy inne pozwalają tylko na przedefiniowanie istniejących.

2
Przeciążenie operatora: funkcja składowa a funkcja niebędąca składową
Czytałem, że przeciążony operator zadeklarowany jako funkcja członkowska jest asymetryczny, ponieważ może mieć tylko jeden parametr, a drugim parametrem przekazywanym automatycznie jest thiswskaźnik. Nie ma więc standardu, aby je porównać. Z drugiej strony przeciążony operator zadeklarowany jako a friendjest symetryczny, ponieważ przekazujemy dwa argumenty tego samego typu, dzięki czemu można …

10
Przeciążenie operatora C # dla `+ =`?
Próbuję zrobić przeciążenia operatorów dla += , ale nie mogę. Mogę tylko przeciążać operatora +. Dlaczego? Edytować Powodem, dla którego to nie działa, jest to, że mam klasę Vector (z polami X i Y). Rozważmy następujący przykład. vector1 += vector2; Jeśli moje przeciążenie operatora jest ustawione na: public static Vector …



6
Czy istnieje sposób na wykonanie przeciążenia metod w języku TypeScript?
Czy istnieje sposób na wykonanie przeciążenia metod w języku TypeScript? Chcę osiągnąć coś takiego: 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__ zamiast __cmp__
Python 2.x ma dwa sposoby na przeciążenie operatorów porównania __cmp__lub „bogatych operatorów porównania”, takich jak __lt__. Mówi się, że preferowane są bogate przeciążenia porównawcze, ale dlaczego tak jest? Bogate operatory porównania są prostsze w implementacji każdego z nich, ale musisz zaimplementować kilka z nich z prawie identyczną logiką. Jeśli jednak …

9
JavaScript: przeciążanie operatorów
Pracuję z JavaScript od kilku dni i doszedłem do punktu, w którym chcę przeciążać operatory dla moich zdefiniowanych obiektów. Po krótkiej przerwie w wyszukiwarce Google wydaje się, że oficjalnie nie możesz tego zrobić, ale jest kilka osób, które twierdzą, że jest to długotrwały sposób wykonania tej czynności. Zasadniczo stworzyłem klasę …

4
operator << musi przyjmować dokładnie jeden argument
ah #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) { ... } ... Kiedy kompiluję, mówi: std :: ostream &amp; logic :: operator &lt;&lt; (std :: ostream &amp;, A &amp;) 'musi przyjmować dokładnie jeden argument. Jaki jest …




3
unique_ptr <0 LUB co robi mniej niż operator?
Mam do czynienia z kodem, który nie został napisany przeze mnie. Mam to oświadczenie: // p is type of std::unique_ptr&lt;uint8_t[]&gt; if (p &lt; 0) { /* throw an exception */ } Co więc p &lt; 0oznacza w tym kontekście? Na stronie z dokumentacją uważam, że mój przypadek dotyczy tego 16) …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.