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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Должен ли оператор << быть реализован как друг или как функция-член?

Что в основном вопрос, есть ли "правильный" способ реализовать operator<<? Чтение this Я вижу, что-то вроде: friend bool operator<<(obj const& lhs, obj const& rhs); предпочтительнее, чем ostream& operator<<(obj const...
задан 25 окт. '08 в 21:19