Публикации по теме 'operator-overloading'


Демистификация перегрузки операторов в Kotlin: учебник для начинающих
Введение Kotlin — это современный язык программирования со статической типизацией, который работает на виртуальной машине Java и может использоваться для разработки различных приложений. Среди особенностей Kotlin — возможность перегружать операторы. Это может показаться пугающим для новичков, но давайте разберемся шаг за шагом. Перегрузка оператора означает, что вы можете…

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

перегрузка нового / удаления
Я делаю небольшой поиск утечек памяти в своей программе, но мой способ перегрузки new и delete (а также new [] и delete []), похоже, ничего не дает. void* operator new (unsigned int size, const char* filename, int line) { void* ptr = new...
78761 просмотров

Есть ли способ перегрузить + = в Python?
Я знаю о методе __add__ для переопределения плюса, но когда я использую его для переопределения + =, у меня возникает одна из двух проблем: (1) если __add__ мутирует себя, то z = x + y будет видоизменять x, когда я действительно не...
15960 просмотров
schedule 26.04.2022

как тип ofstream или ostream переводит все типы в строку?
любой системный пользовательский тип, прошедший до объекта ostream, преобразуется в строку или char *? наподобие cout ‹---------------- 4 ‹ отлично работает, как это достигается? Перегружен ли оператор ‹ Все сработало частично, если я...
3652 просмотров

Безопасная перегрузка оператора потока››
Существует масса информации о перегрузке operator<< для имитации метода в стиле toString() , который преобразует сложный объект в строку. Меня интересует также реализация обратного operator>> для десериализации строки в объект....
3736 просмотров
schedule 14.10.2023

Оператор перегрузки [] для разреженного вектора
Я пытаюсь создать "разреженный" векторный класс на С++, например: template<typename V, V Default> class SparseVector { ... } Внутри он будет представлен std::map<int, V> (где V — тип хранимого значения). Если элемента нет...
2064 просмотров

Оператор перегрузки С++ ==
У меня есть класс со следующим bool DistinctWord::operator==(const DistinctWord W) const { return strWord == W.strWord; } bool DistinctWord::operator==(const DistinctWord& W) const { return strWord == W.strWord; } Я делаю это в...
444 просмотров
schedule 16.06.2022

Проблема с перегрузкой оператора ‹ в C++
У меня есть вектор объектов Student, которые я хочу отсортировать, используя #include <algorithm> и sort(list.begin(), list.end()); Я понимаю, что для этого мне нужно перегрузить оператор «‹», но после попытки (и неудачи) нескольких...
3387 просмотров
schedule 18.05.2023

Пользовательские операторы преобразования С++ без классов?
В С++ можно определить операторы преобразования, которые не являются членами класса? Я знаю, как это сделать для обычных операторов (таких как +), но не для операторов преобразования. Вот мой вариант использования: я работаю с библиотекой C,...
12141 просмотров
schedule 28.03.2022

Почему С# не поддерживает перегрузку операторов с передачей по ссылке?
Является ли это ограничением CLR или решением языкового дизайна? Я попытался сделать это в C++/CLI, конечно, там, где это работает, потому что нужно поддерживать собственный C++: public ref class Test { public: static Test^...
2237 просмотров

Как правильно перегрузить operator == для иерархии классов?
Предположим, у меня есть следующая иерархия классов: class A { int foo; virtual ~A() = 0; }; A::~A() {} class B : public A { int bar; }; class C : public A { int baz; }; Как правильно перегрузить operator== для этих...
99171 просмотров
schedule 24.10.2023

Как перегрузить оператор индекса массива для класса-оболочки двумерного массива?
#define ROW 3 #define COL 4 class Matrix { private: int mat[ROW][COL]; //..... //..... }; int main() { Matrix m; int a = m[0][1]; // reading m[0][2] = m[1][1]; // writing } Я думаю, что напрямую перегрузить нельзя...
5917 просмотров
schedule 22.10.2022

Почему эта ‹‹ перегрузка не компилируется
Я не могу понять, почему следующий код не компилируется. Синтаксис такой же, как у других моих перегруженных операторов. Есть ли ограничение на то, что перегрузка ‹‹ должна быть добавлена ​​в друзья? Если да, то почему? Спасибо за любую помощь....
401 просмотров
schedule 20.08.2022

Почему оператор удаления должен быть статическим?
Я нашел этот вопрос, задающий тот же вещь , однако был дан ответ только на «новую» часть, так что снова. Почему оператор удаления должен быть статическим? Как-то не имеет смысла. Новый оператор имеет смысл, точно так же, как конструктор не...
2437 просмотров
schedule 26.05.2022

Оператор потоков С++ ‹‹ и манипуляторы/форматеры
Во-первых, большая часть моей недавней работы была связана с Java. Поэтому, хотя я и «знаю» C++, я не хочу писать Java на C++. И шаблоны C++ — это то, чего мне будет очень не хватать, когда я вернусь к Java. Теперь, когда это не так, если я...
1055 просмотров
schedule 22.01.2024

шаблоны и операторы приведения
Этот код компилируется в CodeGear 2009 и Visual Studio 2010, но не в gcc. Почему? class Foo { public: operator int() const; template <typename T> T get() const { return this->operator T(); } }; Foo::operator int() const {...
2488 просмотров

оператор перегрузки + (C ++)
Привет, я работаю над перегрузкой +, но когда я пытаюсь сделать простой вызов, например статистик a, b, c; a = b+c; Когда я делаю вышеуказанный вызов, он вылетает. и если я сделаю перегрузку =, он просто вернет ноль. вот часть моего кода....
577 просмотров
schedule 06.11.2023

C++ volatile и перегрузка операторов для приложения CUDA
У меня есть класс A, который я перегружаю оператором =. Однако требуется, чтобы мне нужно было сделать что-то вроде этого: volatile A x; A y; x = y; который вызвал ошибку при компиляции error: no operator "=" matches these operands...
3327 просмотров
schedule 13.05.2023

перегрузка оператора c++
Я пытаюсь выполнить перегрузку оператора в C++; по какой-то причине компиляция продолжает выдавать мне ошибку ошибка: ‘bool Matrix::operator==(const Matrix&, const Matrix&)’ должен принимать ровно один аргумент Теперь я знаю, что есть...
2174 просмотров
schedule 23.04.2024

Почему F # не предоставляет настраиваемую перегрузку для operator ==?
Дискриминированные объединения и другие примитивные типы в F # по умолчанию используют структурное равенство и предоставляют сгенерированное переопределение для метода .Equals. Оператор равенства F #, по-видимому, отличается от оператора C # тем, что...
528 просмотров
schedule 13.08.2022

Нет неявного преобразования в перегруженном операторе
d1 + 4 работает, а 4 + d1 нет, хотя 4 можно неявно преобразовать в GMan. Почему они не эквивалентны? struct GMan { int a, b; GMan() : a(), b() {} GMan(int _a) : a(_a), b() {} GMan(int _a, int _b) : a(_a), b(_b) {} GMan...
813 просмотров