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

Оператор перегрузки == по сравнению с Equals ()
Я работаю над проектом C #, в котором до сих пор я использовал неизменяемые объекты и фабрики, чтобы гарантировать, что объекты типа Foo всегда можно сравнивать на равенство с == . Foo объекты не могут быть изменены после создания, и фабрика...
33523 просмотров
schedule 15.11.2021

Почему для классов в Delphi недоступна перегрузка операторов?
Меня всегда это немного интересовало, но почему перегрузка операторов недоступна для классов в Delphi? Я помню, как однажды прочитал ответ, когда был в бегах, и в нем говорилось, что он с чем-то конфликтует, но я мало что помню. Насколько я могу...
4846 просмотров
schedule 13.10.2021

Перегрузка оператора - неужели разумно запретить?
Java запрещает перегрузку операторов, но, исходя из C ++, я не вижу для этого никаких причин. В языках, где символы операторов являются символами, как и любые другие, к «+» применяются те же правила, что и к «плюсу», и это не проблема. Так в чем...
620 просмотров

Почему оператор постфиксного приращения принимает фиктивный параметр?
Взгляните на эти сигнатуры функций: class Number { public: Number& operator++ (); // prefix ++ Number operator++ (int); // postfix ++ }; Префикс не принимает никаких параметров, но постфикс принимает. Почему? Я думал, что...
10787 просмотров

Перегрузка в C ++
Я не уверен, правильно ли делаю перегрузку. ... \ point.h (42): ошибка C2061: синтаксическая ошибка: идентификатор 'Vec3' Оператор точки + (Vec3 a) const; Вот мой файл .h: #include <fstream> #include <iostream>...
272 просмотров
schedule 14.10.2021

Всегда ли умножение коммутативно в неточной арифметике с плавающей запятой?
Я пытаюсь понять код во время выполнения на языке D. Похоже, что есть отдельные функции для следующих двух вещей: array1[] += scalar * array2[]; array1[] += array2[] * scalar; Почему это нельзя сделать с помощью одной функции? Я думал, что...
1468 просмотров

Возврат копии с перегруженными операторами
У меня есть класс Foo , для которого я перегрузил оператор + следующим образом: Foo Foo::operator+(const Bar &b) { Foo copy = (*this); if (someCondition) return copy; //snip } Мне это кажется разумным. Однако всякий раз,...
740 просмотров
schedule 23.10.2021

Реализуйте равенство вне определения типа
У меня есть несколько типов, реализующих интерфейс. Равенство для этих типов зависит только от членов интерфейса. Можно ли определить равенство для этих типов один раз, не переопределяя Equals или op_Equality для каждого типа? ИЗМЕНИТЬ Я...
190 просмотров

в чем разница между перегрузкой оператора внутри или вне класса?
Я знаю, что в C ++ есть два способа перегрузки. Мы можем перегрузить его внутри (например, класс a ) или снаружи (например, класс b ). Но вопрос в том, есть ли между ними разница во время компиляции или во время выполнения или нет? class a {...
6934 просмотров
schedule 26.09.2021

Невозможно привести объект типа Common.Date к типу System.IConvertible C #
Я видел эту проблему с сообщением об ошибке в stackoverflow, но ни один из них не относился к типу datetime или date, чтобы работать только с типом даты. Я создал класс типа даты и написал для него несколько перегрузок в классе даты. Мой урок...
1198 просмотров
schedule 17.09.2021

Перегруженный оператор присваивания вызывает предупреждение о рекурсии
Мне нужно реализовать перегруженный оператор присваивания в классе, чтобы функция vector.erase работала правильно, как предлагается в ответах на « vector :: erase с помощью член указателя ". Я также реализовал конструктор копирования для той же...
1627 просмотров
schedule 22.09.2021

Оператор C ++ () и объявление 'using': левый операнд должен быть ошибкой l-значения
Пример ниже иллюстрирует более сложную, но не похожую проблему, которую я пытался элегантно решить. У меня есть набор шаблонов, которые должны быть специализированными, и при этом реализовать один или оба из двух интерфейсов: Readable и Writable в...
2524 просмотров
schedule 19.10.2021

Неявное преобразование при перегрузке операторов для классов шаблонов
Я хотел бы знать, почему неявное преобразование типов не работает с перегрузкой внешнего оператора в шаблонах классов. Вот рабочая версия без шаблона: class foo { public: foo() = default; foo(int that) {} foo& operator...
4640 просмотров

Списки инициализаторов и перегрузка присваивания (оператор =)
Распространяется ли перегрузка оператора присваивания на список инициализаторов? Например, предположим, что класс: class MyClass { private: std::string m_myString; //std::string overloads operator = public:...
2449 просмотров

C ++: преобразовать объект в массив
Я пишу матричный класс и хочу иметь возможность преобразовать матрицу фиксированного размера в двойной массив фиксированного размера. Хотя у меня проблемы с реализацией соответствующего оператора приведения. То, что я реализовал до сих пор, не...
3473 просмотров
schedule 01.10.2021

Почему мой оператор приведения из T в SomeStruct ‹T› не работает, когда T является интерфейсом?
Когда я пытаюсь использовать определяемый пользователем оператор приведения из типа интерфейса к универсальному типу структуры, я получаю ошибку компиляции, в которой говорится, что тип не может быть преобразован: public interface J { } public...
126 просмотров

Как перегрузить оператор + полиномиальным классом и какие типы возвращать
У меня проблемы с перегрузкой оператора +, и я не могу понять, в чем причина. Оператор + возвращает полином (называемый C), но он возвращает его по значению, тогда как оператор присваивания ожидает объект Polynomial в качестве параметра, переданного...
4659 просмотров
schedule 05.09.2021

Django: сопоставление имени пользователя без учета регистра от пользователя auth?
Django по умолчанию реализует имя пользователя с учетом регистра, теперь для аутентификации я написал свой собственный Authentication Backend для обработки имен пользователей без учета регистра во время аутентификации. Как показано на:...
16014 просмотров
schedule 21.09.2021

`bool operator‹ (Контакт &) 'должен принимать ровно два аргумента
у меня есть class Conatact{ ..... bool operator<(Contact &c); }; bool operator<(Contact &c) { return this.getName<c.getName(); } он говорит, что `bool operator‹ (Контакт &) 'должен принимать ровно два аргумента, когда...
7726 просмотров

Введение в потоки ввода-вывода C ++
У меня есть фрагмент кода из этой статьи , и я не понимаю, как оно работает? Фрагмент начинается со слов: Вы можете обнаружить сбой определенной операции чтения или записи, проверив результат чтения. Например, чтобы проверить, что от...
189 просмотров