Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Eraston
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182

Возможно ли переопределение операторов для пользовательских типов?

30.07.2015, 17:33. Показов 956. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно преследуемая цель:
Определить свой тип int - myint.
Переопределить для него операторы как надо. Ну, например, надо мне при операции сложения не алгебраически складывать значения, а извранически: 0x0203 + 0x0501 = 0x0308.

Или же иной способ создания своего типа со своими операциями.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2015, 17:33
Ответы с готовыми решениями:

Шаблон для пользовательских типов данных
В общем имееются две функции. Одна принимает тип данных string другая char. Функции выполняют одну и ту же задачу. Вопрос как сделать...

Обработка исключений в классах для пользовательских типов
Здорова господа! Запустил токо класс String тестю и тут у меня вылетело исключение выход за пределы индекса, и программа тупо аварийно...

Перегрузка операторов для стандартных типов/Сложение char[] и int
Добрый день. Захотелось узнать, а можно ли написать оператор сложения для char и char? Пробовал так: #include <iostream> ...

8
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.07.2015, 17:38
Eraston, Возможно.
C++
1
2
3
4
5
6
7
class A
{
public:
   A operator + (const A&);
   A operator * (const A&);
   // etc
};
0
 Аватар для Eraston
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
30.07.2015, 18:02  [ТС]
хз. Переполнение стека
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
30.07.2015, 18:36
Тут не такие крутые хацкеры чтобы в монитор к тебе глядеть. Листинг давай.
0
 Аватар для Eraston
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
30.07.2015, 18:58  [ТС]
C++
1
2
3
    res operator+ ( const res& a ){
        return *this + a;
    }
Хотя бы это, будет вызывать рекурсию.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
30.07.2015, 19:04
Цитата Сообщение от Eraston Посмотреть сообщение
Хотя бы это, будет вызывать рекурсию.
Естественно. Но перегрузка тут не при чем, написанное - исключительно воля программиста, т.е. тебя. Ты захотел сделать рекурсию, ты ее сделал

Даю подсказку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
public:
    A(int val) : mval(val) {}
 
    A operator + (const A& a) const
    {
         return A(mval + a.mval);
    }
private:
    int mval;
};
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
30.07.2015, 19:04
Цитата Сообщение от Eraston Посмотреть сообщение
Хотя бы это, будет вызывать рекурсию.
Это логично. А зачем ты так пишешь? В чём сакральный смысл этой записи?
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
30.07.2015, 19:08
Цитата Сообщение от Eraston Посмотреть сообщение
Хотя бы это, будет вызывать рекурсию.
Окей, ты разобрался и сообщил нам. Теперь поправь.
0
 Аватар для Eraston
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
30.07.2015, 19:14  [ТС]
В общем, ок. Спасибо, возьму на заметку.
Просто сейчас подумал, в моём случае оно по сути и не нужно =)

Добавлено через 3 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
return A(mval + a.mval);
Не совсем очевидный момент для меня оказался, действительно, сложение складываемого со слагаемым вызывает сложение складываемого со слагаемым вызывает... Потом догнал, что слагаемые надо складывать в третью величину.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2015, 19:14
Помогаю со студенческими работами здесь

Переопределение операторов С++
Помогите разобраться с переопределением операторов, как что и куда записывается, какие параметры. Если можно, ссылку на полезную статью, в...

Переопределение операторов
Еще раз об этом интересном вопросе. У меня есть матрицы , условно назовём их тип matrix, есть библиотека, имеющая в своём составе функции...

переопределение операторов
Писал прогу с переопределнием операторов, всё работало, теперь когда мне понадобилась та либа, в ней ничего не работает =( ...

переопределение операторов
Стоит следующая задача. Надо сделать массив чар, которые представляют собой строку (специально делать так, а не через string) и надо...

Переопределение операторов
Плиз помогите сделать задачку.. Написать класс StrangeInt для которого нижеследующий код StrangeInt x = 5; StrangeInt y = 3; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru