Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Eraston
53 / 10 / 2
Регистрация: 09.09.2014
Сообщений: 123
#1

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

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

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

Или же иной способ создания своего типа со своими операциями.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2015, 17:33     Возможно ли переопределение операторов для пользовательских типов?
Посмотрите здесь:

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

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

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

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

Переопределение операторов - C++
Доброго времени суток.. В древние времена, когда ещё жили мамонты, ковырял я потихоньку плюсы.. Потом был долгий перерыв, и, как итог -...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
30.07.2015, 17:38     Возможно ли переопределение операторов для пользовательских типов? #2
Eraston, Возможно.
C++
1
2
3
4
5
6
7
class A
{
public:
   A operator + (const A&);
   A operator * (const A&);
   // etc
};
Eraston
53 / 10 / 2
Регистрация: 09.09.2014
Сообщений: 123
30.07.2015, 18:02  [ТС]     Возможно ли переопределение операторов для пользовательских типов? #3
хз. Переполнение стека
Enno
266 / 169 / 38
Регистрация: 25.08.2014
Сообщений: 1,088
Записей в блоге: 1
30.07.2015, 18:36     Возможно ли переопределение операторов для пользовательских типов? #4
Тут не такие крутые хацкеры чтобы в монитор к тебе глядеть. Листинг давай.
Eraston
53 / 10 / 2
Регистрация: 09.09.2014
Сообщений: 123
30.07.2015, 18:58  [ТС]     Возможно ли переопределение операторов для пользовательских типов? #5
C++
1
2
3
    res operator+ ( const res& a ){
        return *this + a;
    }
Хотя бы это, будет вызывать рекурсию.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
30.07.2015, 19:04     Возможно ли переопределение операторов для пользовательских типов? #6
Цитата Сообщение от 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;
};
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
30.07.2015, 19:04     Возможно ли переопределение операторов для пользовательских типов? #7
Цитата Сообщение от Eraston Посмотреть сообщение
Хотя бы это, будет вызывать рекурсию.
Это логично. А зачем ты так пишешь? В чём сакральный смысл этой записи?
Enno
266 / 169 / 38
Регистрация: 25.08.2014
Сообщений: 1,088
Записей в блоге: 1
30.07.2015, 19:08     Возможно ли переопределение операторов для пользовательских типов? #8
Цитата Сообщение от Eraston Посмотреть сообщение
Хотя бы это, будет вызывать рекурсию.
Окей, ты разобрался и сообщил нам. Теперь поправь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2015, 19:14     Возможно ли переопределение операторов для пользовательских типов?
Еще ссылки по теме:

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

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

Приведение пользовательских типов - C++
#include <iostream> using namespace std; class cl { friend cl operator+(cl& s2); public: cl(int d = 0, int c = 0) { ...

Преобразование пользовательских типов - C++
Здравствуйте. Помогите с одним вопросом, это пример из книги Лафоре ООП С++, не могу разобраться как работают функции int getHrs() const ...


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

Или воспользуйтесь поиском по форуму:
Eraston
53 / 10 / 2
Регистрация: 09.09.2014
Сообщений: 123
30.07.2015, 19:14  [ТС]     Возможно ли переопределение операторов для пользовательских типов? #9
В общем, ок. Спасибо, возьму на заметку.
Просто сейчас подумал, в моём случае оно по сути и не нужно =)

Добавлено через 3 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
return A(mval + a.mval);
Не совсем очевидный момент для меня оказался, действительно, сложение складываемого со слагаемым вызывает сложение складываемого со слагаемым вызывает... Потом догнал, что слагаемые надо складывать в третью величину.
Yandex
Объявления
30.07.2015, 19:14     Возможно ли переопределение операторов для пользовательских типов?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru