Публикации по теме '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 просмотров
schedule
08.01.2023
Есть ли способ перегрузить + = в Python?
Я знаю о методе __add__ для переопределения плюса, но когда я использую его для переопределения + =, у меня возникает одна из двух проблем:
(1) если __add__ мутирует себя, то
z = x + y
будет видоизменять x, когда я действительно не...
15960 просмотров
schedule
26.04.2022
как тип ofstream или ostream переводит все типы в строку?
любой системный пользовательский тип, прошедший до объекта ostream, преобразуется в строку или char *?
наподобие cout ‹---------------- 4 ‹
отлично работает, как это достигается? Перегружен ли оператор ‹
Все сработало частично, если я...
3652 просмотров
schedule
22.04.2024
Безопасная перегрузка оператора потока››
Существует масса информации о перегрузке operator<< для имитации метода в стиле toString() , который преобразует сложный объект в строку. Меня интересует также реализация обратного operator>> для десериализации строки в объект....
3736 просмотров
schedule
14.10.2023
Оператор перегрузки [] для разреженного вектора
Я пытаюсь создать "разреженный" векторный класс на С++, например:
template<typename V, V Default>
class SparseVector {
...
}
Внутри он будет представлен std::map<int, V> (где V — тип хранимого значения). Если элемента нет...
2064 просмотров
schedule
27.03.2024
Оператор перегрузки С++ ==
У меня есть класс со следующим
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 просмотров
schedule
26.04.2023
Как правильно перегрузить 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 просмотров
schedule
09.10.2023
оператор перегрузки + (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 просмотров
schedule
09.08.2023