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

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

Каковы основные правила и идиомы для перегрузки оператора?

Примечание. Ответы были заданы в определенном порядке, но поскольку многие пользователи сортируют ответы в соответствии с голосами, а не время, которое они дали, здесь индекс ответов в том порядке, в котором они имеют наибольший смысл: Общий синт...
12 дек. '10 в 12:44
9

Довольно печатные контейнеры STL STL

Пожалуйста, обратите внимание на обновления в конце этого сообщения. Обновление: я создал публичный проект для GitHub для этой библиотеки! Я хотел бы иметь один шаблон, который раз и навсегда позаботится о том, чтобы печатать все контейнеры STL ч...
31 янв. '11 в 11:44
14

Почему Java не предлагает перегрузку оператора?

Исходя из С++ в Java, очевидный неотвеченный вопрос заключается в том, почему Java не включала перегрузку оператора? Не Complex a, b, c; a = b + c; намного проще, чем Complex a, b, c; a=b.add(c);? Есть ли известная причина для этого, допустимые ар...
16 сент. '08 в 22:04
15

Являются `==` и `! =` Взаимозависимыми?

Я изучаю перегрузку оператора на С++, и я вижу, что == и != - это просто некоторые специальные функции, которые могут быть настроены для пользовательских типов. Однако моя забота состоит в том, почему нужны два отдельных определения? Я думал, что ес...
13 июн. '16 в 22:14
10

Как перегрузить метод __init__ на основе типа аргумента?

Скажем, у меня есть класс, у которого есть член, называемый данными, который является списком. Я хочу, чтобы иметь возможность инициализировать класс с, например, именем файла (который содержит данные для инициализации списка) или с фактическим спис...
26 сент. '08 в 19:49
8

Как перегрузить оператор квадратной скобки в С#?

DataGridView, например, позволяет это сделать: DataGridView dgv = ...; DataGridViewCell cell = dgv[1,5]; но для жизни я не могу найти документацию по оператору index/square-bracket. Как они это называют? Где это реализовано? Может ли это бросить? ...
13 нояб. '08 в 19:20
1

Положительная лямбда: '+ [] {}' - Какое волшебство?

В вопросе Переопределение lambdas не разрешено в С++ 11, почему?, была предоставлена ​​небольшая программа, которая не компилируется: int main() { auto test = []{}; test = []{}; } На вопрос был дан ответ, и все было хорошо. Затем пришел Йо...
19 сент. '13 в 7:51
4

Как перегрузить оператор [] в С#

Я хотел бы добавить оператор в класс. В настоящее время у меня есть метод GetValue(), который я хотел бы заменить с помощью оператора []. class A { private List<int> values = new List<int>(); public int GetValue(int index) {...
08 янв. '09 в 15:32
5

Как правильно перегрузить оператор << для потока?

Я пишу небольшую матричную библиотеку в С++ для операций с матрицами. Однако мой компилятор жалуется, где раньше этого не было. Этот код остался на полке в течение 6 месяцев, а между мной я обновил свой компьютер от debian etch до lenny (g++ (Debian ...
24 янв. '09 в 16:34
5

Как я могу надежно получить адрес объекта, когда оператор & перегружен?

Рассмотрим следующую программу: struct ghost { // ghosts like to pretend that they don't exist ghost* operator&() const volatile { return 0; } }; int main() { ghost clyde; ghost* clydes_address = &clyde; // darn; that not cl...
27 июн. '11 в 14:39
3

Как переопределить оператор [] в Python?

Каково имя метода переопределения оператора [] (нотация подстроки) для класса в Python?
24 дек. '09 в 10:35
6

Перегрузка оператора с помощью методов расширения С#

Я пытаюсь использовать методы расширения для добавления перегрузки оператора в класс С# StringBuilder. В частности, данный StringBuilder sb, я хотел бы, чтобы sb += "text" стал эквивалентным sb.Append("text"). Вот синтаксис для создания метода расш...
05 окт. '08 в 20:59
9

Действительно ли причина перегрузки && и || не замыкаться?

Короткое замыкание операторов && и || является удивительным инструментом для программистов. Но почему они теряют это поведение при перегрузке? Я понимаю, что операторы являются просто синтаксическим сахаром для функций, но операторы для bo...
18 сент. '14 в 12:56
3

Переопределить оператор Python 'in'?

Если я создаю свой собственный класс в Python, какую функцию я должен определить, чтобы разрешить использование оператора "in", например class MyClass(object): ... m = MyClass() if 54 in m: ...
07 февр. '10 в 14:08
9

Перегрузка операторов в Java

Пожалуйста, скажите, можно ли перегрузить операторов на Java? Если он используется где-нибудь в Java, вы могли бы рассказать мне об этом.
06 нояб. '09 в 10:23